跨多个主机共享 SSH 密钥

Sharing SSH Keys across multiple hosts

我正在构建一个分布在多台机器上的服务,该服务登录到其他目标机器并执行操作(写入文件、运行 shell 脚本等)。

目前,我将此服务配置为使用用户名和密码作为通过 ssh 连接到目标机器的身份验证形式,但它需要在目标机器上进行一些额外的引导才能使其正常工作。我想转到 public/private 密钥身份验证模型。

我的问题是,由于这项服务分布在多个主机上,将私钥存储在安全位置(比如使用 AWS KMS 或某种类似服务)并让我的每台机器从那个安全的位置,或者我应该为我的每台机器都有一个私钥?

让所有机器从中央位置获取 ssh 密钥本质上并不比所有机器都从中央位置获取用户名和密码更糟糕。但是,他们获取 ssh 密钥的连接应该是安全的,这可能意味着您必须至少有一个密钥 - 到达您的中心位置的密钥 - 在每台机器上本地存储。

我的回答是最好每台机器都有一个私钥。

这样,如果私钥被盗,只有一台机器受到危害,而不是所有机器。

此外,您只需保护私钥即可。 Public 根据定义,键是 public。如果您喜欢,请随时在 Twitter 上 post 您的 public 密钥。它将产生零影响。

您可以使用基于区块链的去中心化 PKI 系统 EMCSSH:http://emercoin.com/EMCSSH

免责声明: 我是这个系统的作者,会回答任何问题