我最近发现了github-keygen,这是一个帮助您设置用于GitHub的SSH的工具。该工具所做的事情之一是创建一个新的SSH专用于GitHub交换的私钥;手册声称“这比使用相同的SSH密钥连接多个主机要好得多”。我不明白为什么为GitHub使用专用密钥会更好。手册对这一做法的理由如下:
(如果您丢失了碳化硅密钥,只需在您的GitHub帐户SSH设置中撤消它,删除密钥文件,然后重新运行
github-keygen)。
但是,如果您丢失了一个非专用的SSH密钥,您肯定也会这样做--您将从GitHub上的授权密钥列表(以及您使用的其他每台远程计算机的authorized_keys文件中)中删除它,然后生成一个新的密钥。对于不同的远程主机(如GitHub),使用专用SSH密钥可以买到什么?
发布于 2016-06-24 01:59:57
为什么在不同的主机上使用专用的SSH密钥(比如GitHub)?
答:撤销。
当您丢失SSH密钥时,您必须在它可以访问的所有东西上撤销它。如果您在GitHub上使用的密钥与您在个人web主机上使用的SSH相同,则必须从两个位置删除该密钥。每个服务的一个键意味着您的其他密钥都不会受到丢失的影响。
发布于 2016-06-24 01:50:00
GitHub的建议可能已经超出了陈述风险的范围。在多个系统上使用相同的ssh密钥不像在多个系统上使用相同的密码所带来的风险。但是,还有一些其他因素需要考虑,这些因素可能会导致某个人拥有多个ssh键。
拥有多个ssh键的最明显原因与您的身份概念有关。虽然我们大多数人认为我们只有一个身份,但现实情况是,我们可能至少有两个身份--个人/私人身份和工作身份。对我们大多数人来说,我们的个人身份永远不会改变,但我们的工作/职业身份在职业生涯中可能会发生多次变化。因此,将这两种身份分开常常是有意义的。在一些组织中,你甚至会得到一个‘工作’ssh密钥,当你离开组织时,这个密钥就会被撤销。如果您将该密钥用于个人目的,您可能会发现您已经失去了对某些资源的访问,或者必须经过审核过程才能重新获得访问权等等。
拥有多个ssh键的另一个原因是限制ssh键的值。这类似于有两个单独的钥匙环-一个你挂在大厅的钩子和另一个你放在一个保险箱在你的地板下。第一个包含低风险、经常使用的资源的关键。第二,高风险或很少需要资源。如果你的房子被抢劫,他们很可能会得到第一个,但不是第二个,使损害最小化。
最后一项涉及密钥管理,根据我的经验,我在ssh密钥方面看到的最常见的弱点/失败,以及我认为我们还没有看到更广泛部署ssh密钥的原因之一。我经常遇到这样的情况:人们使用ssh密钥,但却有各种糟糕的密钥管理实践。实际情况是,使用ssh密钥与糟糕的密钥管理实践相比,通常比只依赖密码更不安全。许多用户不明白保护自己的私钥有多重要,而且会犯错误,比如将它们签入版本控制系统,将它们存储在不安全的备份中,将它们复制到各种云存储系统等等。我经常发现人们使用ssh密钥时没有密码,因为它更方便。这是个各种各样的坏主意。如果您想使用方便,那么使用一个适当配置的ssh代理,但是要确保您有一个好的密码短语(注意短语的用法而不是word!)
正是因为这个密钥管理问题,我建议不要为每个站点使用不同的密钥。除了不提高安全性之外,它还增加了密钥管理负担--您必须管理的密钥越多,出错的可能性就越大。大多数人可能需要一个以上的钥匙,但不寻常的是,需要超过5个,在大多数情况下,2或可能3就足够了。
https://security.stackexchange.com/questions/127794
复制相似问题