如何在 git pull 之前检查 ubuntu 中的多个 id_rsa 密钥

如何在 git pull 之前检查 ubuntu 中的多个 id_rsa 密钥

我有两个不同的 id_rsa 密钥,如下所示:

/home/ubuntu/.ssh/id_rsa_1 
/home/ubuntu/.ssh/id_rsa_2

我在ssh中都添加了,ssh-add -l的结果如下:

4096 cb:c2:9e:06:d7:e4:16:e3:dc:9b:c4:df:2f:58:30:82 /home/ubuntu/.ssh/id_rsa_1 (RSA)
4096 bd:a1:0f:c2:bc:4d:6f:43:0a:15:0b:39:ce:0d:08:54 /home/ubuntu/.ssh/id_rsa_2 (RSA)

现在,当我尝试从我的仓库中 git pull 时,它应该使用 id_rsa_2 工作。但事实并非如此。

但是,如果我首先添加 id_rsa_2,则 ssh-add -l 会产生以下结果:

4096 cb:c2:9e:06:d7:e4:16:e3:dc:9b:c4:df:2f:58:30:82 /home/ubuntu/.ssh/id_rsa_2 (RSA)
4096 bd:a1:0f:c2:bc:4d:6f:43:0a:15:0b:39:ce:0d:08:54 /home/ubuntu/.ssh/id_rsa_1 (RSA)

它开始工作了。

我不明白我应该做什么改变以便它开始从两个 id_rsa 文件进行检查(无论哪个文件先添加)。

任何帮助都将不胜感激。谢谢。

[更新澄清]:当它不起作用时我收到的错误如下:

git remote show origin_ssh

ERROR: Repository not found.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

所以,基本上它说我没有访问权限。

这是我的 origin_ssh 指向的地方:

git remote -v

origin_ssh      [email protected]:TestRepoOne/api.git (fetch)
origin_ssh      [email protected]:TestRepoOne/api.git (push)

以下代码重现了我的错误:

ssh-add -D
ssh-add ~/.ssh/id_rsa_1
ssh-add ~/.ssh/id_rsa_2

以下代码解决了[针对这个特定的 git repo] 的错误:

ssh-add -D
ssh-add ~/.ssh/id_rsa_2
ssh-add ~/.ssh/id_rsa_1

因此,基本上只有首先添加 id_rsa_2 时它才有效。[澄清说明:我已在我的 github 远程仓库中添加了 id_rsa_2]

答案1

听起来您正在寻找一种方法来确保在连接到 GitHub 时使用 id_rsa_2 密钥,同时将 id_rsa_1 用于其他用途。

编辑~/.ssh/config并添加以下内容:

Host github.com             
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_2

这将确保与 github.com 的连接使用指定的密钥。


更新:要对具有相同用户名的不同存储库使用不同的密钥,请在 ssh 配置文件中使用以下命令:

Host repo1.github.com
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_1

Host repo2.github.com
    HostName github.com
    User git
    IdentityFile /home/ubuntu/.ssh/id_rsa_2

并且您需要更新./git/config每个存储库中的遥控器:

 [remote "origin"]
    url = "ssh://[email protected]/username/repo1.git"

 [remote "origin"]
    url = "ssh://[email protected]/username/repo2.git"

来源:https://stackoverflow.com/a/26507643/1380598

相关内容