3

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

目前,我已将此服务配置为使用用户名和密码作为身份验证的一种形式,以对目标机器进行 ssh-ing,但它需要在目标机器上进行一些额外的引导才能使其正常工作。我想转向公钥/私钥身份验证模型。

我的问题是,由于该服务分布在多个主机上,将私钥存储在安全位置(例如使用 AWS KMS 或某些类似服务)并让我的每台机器从该安全位置读取数据是不好的做法,或者我的每台机器都应该有一个私钥吗?

4

3 回答 3

3

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

于 2016-02-23T00:11:38.207 回答
2

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

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

此外,您只需要保护私钥即可。根据定义,公钥是公开的。如果您喜欢,请随意在 Twitter 上发布您的公钥。它将产生零影响。

于 2016-02-23T00:19:51.730 回答
1

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

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

于 2016-02-23T00:28:17.000 回答