可以使用一个 SSH 密钥推送到不同的 Git 遥控器吗?
Posted
技术标签:
【中文标题】可以使用一个 SSH 密钥推送到不同的 Git 遥控器吗?【英文标题】:Can one single SSH key be used to push to different Git remotes? 【发布时间】:2013-09-05 15:58:14 【问题描述】:通常,我会生成不同的 SSH 密钥来推送到多个 Git 服务器。
今天,我的同事向我展示了他使用相同的id_rsa.pub
文件来推送到 GitHub 和我们的 LAN GitLab 服务器。
可以使用一个 SSH 密钥推送到不同的 Git 远程吗?
我们必须为不同的远程服务器生成多个 SSH 密钥的原因是什么?
【问题讨论】:
【参考方案1】:是的,您可以为多个服务器使用相同的公钥/私钥对,只要每台服务器都有您的公钥副本。
【讨论】:
【参考方案2】:在 ssh 中,私钥是客户端上的私钥,您将公钥推送到要登录的服务器。
通常,您会为某些脚本中使用的每个无密码密钥生成单独的密钥,以尽量减少密钥被盗时造成的损失。
但我认为没有任何充分的理由生成多个身份以供手动使用。涉及我手动使用的所有内容始终使用相同的受密码保护的id_rsa
,通常在 ssh-agent 中解锁。
出于类似原因,您也可以使用单独的密钥,但除非您使用不同的密码保护每个密钥,否则没有意义,因为所有私钥都位于同一磁盘上的同一目录中。
当然,在不同的工作站上,你肯定应该有不同的私钥,但它会再次用于从那台机器上完成的所有事情。
【讨论】:
【参考方案3】:解决您的两个问题:
第一季度。可以使用一个 SSH 密钥推送到不同的 Git 远程吗?
是的,假设您在所有开发工作站上使用一个 id_rsa.pub
或其他名称的公钥以及您的私钥,那么只需将该一个公钥上传到多个 Git 主机即可允许您与您目前从多个键中获得。
这也将使您的生产生活更加轻松,无需管理多个密钥并确保每次与服务器通信时都连接到正确的密钥。
如果您使用多个工作站(即家庭和办公室),您还可以选择在每个本地工作站上使用相同的公钥/私钥对。这进一步减少了您需要跟踪的不同键的数量。
第二季度。我们必须为不同的远程服务器生成多个 SSH 密钥的目的是什么?
您没有理由必须为多个远程 Git 存储库服务器生成多个密钥,正如您对第一个问题的回答所表明的那样。
正如Jan Hudec 所提到的,人们可能选择为不同的 Git 存储库使用不同的密钥的原因是为了增加一层安全性或管理控制。
在 Bitbucket 和 GitHub 上可以找到更多关于在 Git 中使用 SSH 的信息
【讨论】:
感谢您的解释。以上是关于可以使用一个 SSH 密钥推送到不同的 Git 遥控器吗?的主要内容,如果未能解决你的问题,请参考以下文章
如果未将 env 文件推送到 git,如何在服务器上使用 env 中提到的密钥