GitHub 的建议可能过度说明了风险。在多个系统上使用相同的 ssh 密钥与在多个系统上使用相同密码所带来的风险完全不同。但是,还有一些其他因素需要考虑,这些因素可能会导致某人拥有多个 ssh 密钥。
拥有多个 ssh 密钥的最明显原因与您的身份概念有关。虽然我们大多数人认为我们只有一个身份,但现实情况是我们可能至少有两个——个人/私人身份和工作身份。对于我们大多数人来说,我们的个人身份永远不会改变,但我们的工作/专业身份可能会在职业生涯中多次改变。因此,将这两个身份分开通常是有意义的。在某些组织中,您甚至会获得一个“工作”ssh 密钥,当您离开组织时,该密钥会被撤销。如果您将该密钥用于个人目的,您可能会发现您失去了对某些资源的访问权限,或者必须通过审查程序才能重新获得访问权限等。
拥有多个 ssh 密钥的另一个原因是限制 ssh 密钥的值。这类似于拥有两个独立的钥匙圈——一个挂在大厅的挂钩上,另一个放在地板下的保险箱里。第一个包含低风险、经常使用的资源的关键。第二,高风险或很少需要的资源。如果你的房子被抢劫了,他们可能会得到第一个,而不是第二个,从而最大限度地减少损失。
最后一项与密钥管理有关,根据我的经验,这是我看到的关于 ssh 密钥的最常见的弱点/失败,也是我认为我们没有看到更广泛部署 ssh 密钥的原因之一。我经常遇到人们使用 ssh 密钥的情况,但密钥管理实践各不相同。现实情况是,使用具有不良密钥管理实践的 ssh 密钥通常不如仅依靠密码安全。许多用户不了解保护他们的私钥有多重要,并且会犯错误,例如将它们检查到版本控制系统中,将它们存储在不安全的备份中,将它们复制到各种云存储系统等。我发现人们经常使用ssh 密钥没有密码,因为它更方便。这是一个不同的坏主意。如果你想要方便,
正是由于这个密钥管理问题,我不建议为每个站点使用不同的密钥。除了不提高安全性之外,它还增加了密钥管理的负担——您必须管理的密钥越多,发生错误的可能性就越大。大多数人可能需要多个密钥,但需要超过 5 个的情况并不常见,在大多数情况下,2 个或可能 3 个就足够了。