关于 SSH 的部分理论问题。
我有多个远程机器。
我想在没有密码的情况下登录这些远程机器。所以我ssh-keygen
在开发机器上做,并将第一台机器的公钥复制到autorized_keys
. 连接成功。
现在,如何处理第二台、第三台等远程机器?我应该重复使用相同的公钥并将其复制到authorized_keys
其他机器上吗?或者我应该为每个遥控器生成一个新密钥?不同机器上的相同公钥是否会带来安全风险?
关于 SSH 的部分理论问题。
我有多个远程机器。
我想在没有密码的情况下登录这些远程机器。所以我ssh-keygen
在开发机器上做,并将第一台机器的公钥复制到autorized_keys
. 连接成功。
现在,如何处理第二台、第三台等远程机器?我应该重复使用相同的公钥并将其复制到authorized_keys
其他机器上吗?或者我应该为每个遥控器生成一个新密钥?不同机器上的相同公钥是否会带来安全风险?
你可以分享它们
一般来说,SSH公钥可以在主机之间安全地共享。公钥/私钥加密的一大优势是您不需要为每个服务器/客户端对使用新密钥。
简而言之,将您的公钥提供给服务器并不会使其有权冒充您。从公钥到私钥是“不可能的”(数万亿年的 CPU 时间)。
一个例外
使用此处描述的“关键代理”有一个弱点。服务器的系统管理员(或
root
)可以在您连接时使用本地客户端的密钥代理。实际上,这意味着当您连接并使用 SSH 密钥代理时,系统管理员可能会在另一台服务器上冒充您。
跨越组织边界,您应该避免使用代理,或者寻找另一个在使用时提示您的关键代理。否则,您不应在组织之间共享公钥/私钥。
只要您确保您的私钥安全(不与任何人共享,受密码保护),我认为没有任何严重的理由反对在许多机器上使用相同的公钥。