SSH:安全客户端托管私有RSA密钥?

在服务器上生成公钥/私钥对是安全的,将公钥添加到authorized_keys列表,然后将私钥复制到每个客户端,如此处所述(http://www.rebol.com/docs/ssh-auto-login.html)假设您对每个客户端保持永久控制权? (即同一用户,许多计算机).

典型的过程是在客户端上生成公钥/私钥对,然后将客户端的公钥添加到服务器上的authorized_keys列表中,如此处所述(http://www.linuxproblem.org/art_9.html).使用此方法,如果您有多台客户端计算机,则每个客户端计算机必须连接到authorized_keys列表并随时间进行维护.

最佳答案
恭喜你,你发现了一个有不好建议的互联网教程.

对任何一台计算机进行攻击时,会出现对多台计算机使用单个密钥对的问题.然后你别无选择,只能在任何地方撤销密钥对,并重新密钥使用该密钥对的每台计算机.您应该始终为每台计算机和每个用户使用唯一的密钥对,以限制受损密钥可以造成的损害.

至于那个教程,在服务器上生成密钥对并将私钥复制到客户端是一个非常糟糕的建议.这完全是落后的.相反,应在客户端上生成密钥对,并将公钥复制到服务器.甚至还有一个帮助脚本ssh-copy-id就是这样做的,并确保所有权限都正确,客户端获取服务器的主机密钥等.

可能确实存在您希望集中管理用户身份密钥的情况,例如对于自动化脚本,但在这种情况下,您确实应该从第三个主机执行此操作,或者理想情况下从配置管理系统(如puppet)执行此操作.

转载注明原文:SSH:安全客户端托管私有RSA密钥? - 代码日志