SSH:客户端可以安全地托管私有 RSA 密钥吗?

use*_*807 10 ssh ssh-keys

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

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

Mic*_*ton 22

恭喜,您找到了一个包含错误建议的 Internet 教程。

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

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

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

  • 我想到了一个与共用针头的比喻,但我真的不确定我是否想走那么远...... (7认同)
  • 此外,客户端机器的用户必须记住,此特定密钥不能安全地用于任何其他目的,因为您无法知道私钥在哪里。如果您知道密钥是在客户端生成的并且从未离开客户端,那么使用相同的密钥登录不同的系统通常是安全的。 (2认同)