【问题标题】:Can't get Multiple SSH keys to work for multiple github accounts无法让多个 SSH 密钥为多个 github 帐户工作
【发布时间】:2016-10-14 16:19:57
【问题描述】:

我正在尝试为两个不同的 github 帐户设置多个 ssh 密钥,但我似乎无法让它像我想要的那样工作。

目前我有两个 ssh 密钥,我们称它们为 a_rsa 用于从 github.com-a 克隆的 repos 和 b_rsa 用于从 github.com-b 克隆的 repos。

我在 Ubuntu 上,我所有的密钥和配置都位于 ~/.ssh。我的 ssh 配置如下所示:

#Account A
Host github.com-a
    HostName github.com
    User git
    IdentityFile ~/.ssh/a_rsa

#Account b
Host github.com-b
    HostName github.com
    User git
    IdentityFile ~/.ssh/b_rsa

我的.git/config 文件之一中的示例网址是:

url = git@github.com:a/SomeRepo.git

无论我在哪个 repo 中尝试从 master 推送或拉取,它总是尝试使用密钥 b_rsa。

我尝试将每个上的用户分别更改为 ab 均无济于事。我不确定我的配置是否被读取,因为我尝试将我的配置文件设置为:

Host *
    IdentityFile ~/.ssh/a_rsa

我所有的 repos 仍然尝试使用 b_rsa 键。

我希望它的工作方式基于我想要推送到的仓库的所有者(所有者 ab)它会使用适当的密钥,但我似乎无法弄清楚怎么了。

【问题讨论】:

  • 有趣的问题。老实说,我怀疑就 SSH 而言是否可行。但是,在 git 配置中可能是可能的。这就是您希望进行任何进一步研究的地方,而不是 SSH 配置。祝你好运!
  • 我发现了这篇文章,我认为它会让你得到你想要的。 stackoverflow.com/questions/2419566/…

标签: git github ssh


【解决方案1】:

问题出在存储库的 URL 中。

您应该在 git 存储库 URL 中使用 Host,而不是 ~/.ssh/config 中的 Hostname

因此,您的存储库中的 URL .git/config 应该是

url = git@github.com-a:a/SomeRepoForUserA.git

或,

url = git@github.com-b:b/SomeRepoForUserB.git

在提交时使用正确的 Github 身份

您想做的另一件事是,如果这些存储库的用户名和电子邮件地址不同,那么在向这些存储库提交时,您应该使用相应的用户名,电子邮件如下:

git -c user.name="UserA" -c user.email=UserA@blah.com commit -m "Commit done to repository A"

与,

git -c user.name="UserB" -c user.email=UserB@blah.com commit -m "Commit done to repository B"

使用不正确的用户名、电子邮件修复提交

如果您已经向不正确的作者和用户进行了提交,则应该使用它来修复它。

 git -c user.name="UserA" -c user.email=UserA@blah.com commit --amend --reset-author

当然,以上只修复了最近的提交。如果有较旧的提交,您可以将交互式变基 (git rebase -i) 与上述命令结合使用,或者,使用 filter-branch

【讨论】:

    【解决方案2】:

    试试

    IdentitiesOnly yes
    

    IdentitiesOnly 指定 ssh(1) 应仅使用 ssh_config 文件中配置的身份验证身份文件,即使 ssh-agent(1) 提供更多身份。此关键字的参数必须是“是”或“否”。此选项适用于 ssh-agent 提供许多不同身份的情况。默认为“否”。

    【讨论】:

      猜你喜欢
      • 2014-09-11
      • 1970-01-01
      • 2017-07-02
      • 2020-02-18
      • 2012-12-29
      • 2018-03-17
      • 2014-01-05
      • 2015-06-28
      • 2011-03-14
      相关资源
      最近更新 更多