通常,我会生成不同的 SSH 密钥来推送到多个 Git 服务器。
今天,我的同事向我展示了他使用同一个id_rsa.pub
文件推送到 GitHub 和我们的 LAN GitLab 服务器。
可以使用一个 SSH 密钥推送到不同的 Git 遥控器吗?
我们必须为不同的远程服务器生成多个 SSH 密钥的原因是什么?
要解决您的两个问题:
Q1。可以使用一个 SSH 密钥推送到不同的 Git 遥控器吗?
是的,假设您id_rsa.pub
在所有开发工作站上使用一个或以其他方式命名的公钥以及您的私钥,那么只需将该一个公钥上传到多个 Git 主机,您就可以获得与当前从多个 Git 主机获得的相同访问权限键。
这也将使您的生产生活更加轻松,无需管理多个密钥并确保每次与服务器通信时都连接到正确的密钥。
如果您使用多个工作站(即家庭和办公室),您还可以选择在每个本地工作站上使用相同的公钥/私钥对。这进一步减少了您需要跟踪的不同键的数量。
Q2。我们必须为不同的远程服务器生成多个 SSH 密钥的目的是什么?
正如您对第一个问题的回答所表明的那样,您没有理由必须为多个远程 Git 存储库服务器生成多个密钥。
正如Jan Hudec所提到的,人们可能选择为不同的 Git 存储库使用不同的密钥的原因是为了增加一层安全性或管理控制。
是的,您可以为多台服务器使用相同的公钥/私钥对,只要每台服务器都有您的公钥的副本。
在 ssh 中,私钥是客户端上的私钥,您将公钥推送到要登录的服务器。
通常,您会为某些脚本中使用的每个无密码密钥生成单独的密钥,以最大限度地减少密钥被盗时的损坏。
但是我看不出有什么好的理由来生成多个身份以供手动使用。涉及我手动使用的所有内容始终使用相同的密码保护id_rsa
,通常在 ssh-agent 中解锁。
出于类似的原因,您也可以使用单独的密钥,但除非您使用不同的密码保护每个密钥,否则没有意义,因为所有私钥都位于同一磁盘上的同一目录中。
当然,在不同的工作站上,您肯定应该有不同的私钥,但它将再次用于从该机器完成的所有操作。