我在我的工作计算机上,已经[已成功]配置为连接到我们的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
解析主机名?我错过了什么?
答案 0 :(得分:0)
您的网址应为:
github.com-PERSONAL:nikblanchet/myrepository.git
你先试过
git@github-PERSONAL:nikblanchet/myrepository.git
这就是为什么它无法解析配置文件中而不是的github-PERSONAL
。
github.com-PERSONAL
是。
注意:无需添加git@
部分:您的配置文件确实已经指定了User git
。