这几天,我一直在尝试熟悉SSH,希望我已经了解了它。
然而,一个问题仍然存在——我的密钥与我(作为用户)还是我在机器上的用户帐户相关联?
你没有钥匙,你有一个密钥对。你如何处理每一个是非常不同的。您的公钥可以发布在 twitter 上并与全世界共享(包括骗子)。您的私钥必须受到仔细保护。
我有同样的公众号我通过SSH访问的所有服务器上的关键。
我在用于访问这些服务器的两台台式 PC 和一台上网本上保留相同的私钥。我还将私钥保存在 USB 驱动器上,以便在其他人的 PC 上使用(无需将其复制到他们的 PC)。我使用强密码来保护私钥。没有理由不能只将私钥保存在 USB 驱动器上(而没有其他地方)。
私钥代表您的身份。在不同的机器上是否有不同的密钥取决于你是否认为“我在A机器上”和“我在B机器上”是同一个身份。
拥有单个私钥的主要优点是易于维护。您只需将一个公钥部署到您想要登录的所有地方,您就可以从任何地方登录。
拥有多个私钥的主要优点是限制密钥泄露时可能造成的损害。
例如,如果您有几台物理安全的机器和一台笔记本电脑,那么在所有这些物理安全的机器上有一个公共私钥,但在笔记本电脑上有一个不同的密钥是有意义的。这样,如果笔记本电脑被盗,您可以使相应的公钥无效,并且仍然能够从一台物理安全的机器登录到另一台。
对于 ssh,密钥对(公共 + 私有)代表单个身份。您将受保护的私钥保存在您信任并可以保护的机器上。您将公钥信息放置在您希望能够通过密钥验证远程访问的机器上。
你不应该把你的私钥放在你不信任的机器上 - 所以只是复制 .ssh/ 可能会有风险。
在您要连接的机器上,您将公钥的副本放入特定文件(通常为 .ssh/authorized_keys)中,以便进行身份验证。所以从技术上讲,您不会在任何地方复制密钥,您只是将公钥的内容复制到不同的文件中。
假设您有一台您信任的机器,并且您想要连接 12 台机器,您可以将您的公钥信息放入 12 台机器上的 .ssh/authorized_keys 文件中。
稍后,您可能拥有另一台完全信任的机器。是否为该机器创建新的公钥/私钥对,并将公钥复制到 12 个 .ssh/authorized_keys 文件,或者是否将私钥复制到新机器上(此时您什么都不做)完全由您选择与其他 12 台机器)。这取决于您对所讨论的各种机器的信任程度。
我尝试使用尽可能少的密钥对,以确保您尝试实现的安全性。
不过,您的基本前提是正确的,密钥对与您的相关性比与帐户的相关性更大(即,您可以将相同的公钥放入服务器上的 3 个帐户中,然后从您的机器 ssh 到其中的任何一个,只需一个单个私钥)。