我这里有一个 .ssh 配置文件
Host *
AddKeysToAgent yes
IdentitiesOnly yes
#Github (default)
Host gh
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa
#Bitbucket (secondary)
Host bb
HostName bitbucket.org
User git
IdentityFile ~/.ssh/id_rsa_bb
#Azure DevOps (secondary)
Host ado
HostName ssh.dev.azure.com
User git
IdentityFile ~/.ssh/id_rsa_ado
IdentitiesOnly yes
#GitLab
Host gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gl
如果我IdentitiesOnly yes
在 * 主机中进行了设置,则无法通过 SSH 连接到 bitbucket,但所有其他连接都可以工作:
% ssh -T [email protected]
[email protected]: Permission denied (publickey).
删除 IdentitiesOnly 配置会使 bitbucket ssh 正常工作。我也尝试过重新加载身份
ssh-add ~/.ssh/id_rsa_bb
答案1
authorized_keys
这表明在文件(或等效文件)中配置的公钥[email protected]
实际上可能不是与 中的私钥相对应的密钥~/.ssh/id_rsa_bb
,而是代理中可用的其他密钥之一。
尝试使用set to ,并读取调试消息以查看远程主机实际接受哪个键。ssh -v -T [email protected]
IdentitiesOnly
no