可以使用一个SSH密钥推送到不同的Git遥控器吗?

时间:2013-09-02 13:56:17

标签: git ssh ssh-keys

通常,我生成不同的SSH密钥以推送到多个Git服务器。

今天,我的同事告诉我,他使用相同的id_rsa.pub文件推送到GitHub和我们的LAN GitLab服务器。

可以使用一个SSH密钥推送到不同的Git遥控器吗?

我们必须为不同的远程服务器生成多个SSH密钥的原因是什么?

3 个答案:

答案 0 :(得分:7)

解决您的两个问题:

<强> Q1。可以使用一个SSH密钥推送到不同的Git遥控器吗?

是的,假设您在所有开发工作站上使用了一个id_rsa.pub或其他名称的公钥以及您的私钥,那么只需将一个公钥上传到多个Git主机就可以了您当前从多个键获取的访问权限。

这也将使您的生产生活更轻松,无需管理多个密钥,并确保每次与服务器通信时都与正确的密钥连接。

如果您使用多个工作站(即家庭和办公室),您也可以选择在每个本地工作站上使用相同的公钥/私钥对。这进一步减少了您需要跟踪的不同键的数量。

<强> Q2。我们为不同的远程服务器生成多个SSH密钥的目的是什么?

您没有理由拥有为多个远程Git存储库服务器生成多个密钥,如第一个问题的答案所示。

正如Jan Hudec所提到的那样,人们可能选择为不同的Git存储库使用不同的密钥的原因将是另外一层安全或管理控制。

有关使用SSH和Git的详细信息,请参阅BitbucketGitHub

答案 1 :(得分:1)

是的,只要每个服务器都有一个公钥副本,就可以为多个服务器使用相同的公共/私有ssh密钥对。

答案 2 :(得分:1)

在ssh中,私钥是客户端上的私钥,您将公钥推送到要登录的服务器。

通常,您会为某些脚本中使用的每个无密码短语生成单独的密钥,以便在密钥被盗时将损坏降至最低。

但我认为没有任何充分理由为手动使用生成多个身份。涉及我手动使用的所有内容始终使用相同的密码保护id_rsa,通常在ssh-agent中解锁。

您也可以出于类似的原因使用单独的密钥,但除非您使用不同的密码保护每个密钥,否则没有意义,因为所有私钥都存在于同一磁盘上的同一目录中。

当然,在不同的工作站上,你肯定应该拥有不同的私钥,但它将再次用于从该机器完成的所有工作。