GitHub多个帐户:可以使用两个帐户对SSH进行身份验证,但无法克隆一个帐户的存储库

时间:2017-11-09 22:00:00

标签: authentication github ssh

我在我的工作计算机上,已经[已成功]配置为连接到我们的GitHub帐户并分别使用SSH和GPG密钥验证我们的提交。在我开始更改内容之前,我的原始 ~/.ssh/config文件是:

Host *
 AddKeysToAgent yes
 UseKeychain yes
 IdentityFile ~/.ssh/id_rsa

要添加我的个人帐户,我生成了一个新的SSH密钥(~/.ssh/id_rsa_personal),将.pub部分添加到我的个人GitHub帐户,并修改我的{{1文件到以下内容:

~/.ssh/config

在此更改后,我仍然可以毫无问题地与我的工作帐户进行交互 - 没有任何改变。但是,当我尝试使用

与我的个人帐户进行互动时
# Default
Host *
 AddKeysToAgent yes
 UseKeychain yes

# Personal
Host github.com-PERSONAL
 HostName github.com
 User git
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa_personal

# Work
Host github.com
 HostName github.com
 IdentityFile ~/.ssh/id_rsa

,我收到一条错误消息:

git clone git@github-PERSONAL:nikblanchet/myrepository.git

为了缩小问题范围,我决定尝试一种简单的SSH身份验证

Cloning into 'myrepository'...
ssh: Could not resolve hostname github-personal: nodename nor servname provided, or not known
fatal: Could not read from remote repository.

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

,令人惊讶的是,它有效!

ssh -T git@github.com-PERSONAL

(按预期运行Hi nikblanchet! You've successfully authenticated, but GitHub does not provide shell access. 使用我的工作帐户进行身份验证。)

所以现在我迷路了。为什么ssh -T git@github.com可以ssh -T解析主机名?我错过了什么?

1 个答案:

答案 0 :(得分:0)

您的网址应为:

github.com-PERSONAL:nikblanchet/myrepository.git

你先试过

git@github-PERSONAL:nikblanchet/myrepository.git

这就是为什么它无法解析配置文件中而不是github-PERSONAL
github.com-PERSONAL是。

注意:无需添加git@部分:您的配置文件确实已经指定了User git