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