如何在GitHub上使用一个用户添加2个仓库的部署密钥

8
我创建了一个名为“deploy”的用户,并生成了一个ssh_key。我将id_rsa.pub添加为github deploy key。
这个“deploy”用户需要拉取2个repo,所以我在另一个repo中也添加了相同的ssh_key作为deploy key。
但是github告诉我,deploy key已经在使用中。
我不知道如何为一个用户添加2个id_rsa.pub。
更新:
我额外添加了id_rsa_assets,但我仍然无法拉取。
ssh-add .ssh/id_rsa_assets

无法连接到您的身份验证代理。

.ssh/config

Host guardians
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa

Host assets
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa_assets

可能是重复的问题:github部署密钥:如何为单个机器授权多个存储库 - Martin Joiner
1个回答

11

你可以使用任何名称创建两个公钥和私钥:

~/.ssh
  repo1
  repo1.pub
  repo2
  repo2.pub

  config

这意味着它不必被命名为id_rsa(.pub)才能正常工作,只要你告诉ssh去哪里查找即可。
这就是'config'发挥作用的地方: config文件包括您对GitHub repo1和GitHub repo2的两个连接的名称,以及每个连接的私有仓库密钥的路径,如“change github account mac command line”和“Quick Tip: How to Work with GitHub and Multiple Accounts”中所述:

Host githubRepo1
HostName github.com
User git
IdentityFile ~/.ssh/repo1

Host githubRepo2
HostName github.com
User git
IdentityFile ~/.ssh/repo2

这样你就可以从任何两个仓库中拉取代码,只要使用它们的ssh地址。


当我运行 ssh-add ~/.ssh/repo2 时,它会显示“无法打开到您的身份验证代理的连接。” - guilin 桂林
1
@guilin桂林:请参考https://www.cs.indiana.edu/Facilities/FAQ/Security/openssh.html:如果您的会话未在“ssh-agent”下运行,则可以通过在代理下重新启动新的shell来解决此问题,方法是运行:`exec ssh-agent bash`您可以将bash替换为您选择的shell。一旦这样做,您就应该能够运行ssh-add来为该shell加载密钥。 - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接