我有多个 ssh 密钥,一个项目使用一个密钥。我已成功将 ssh 公钥分配给我的 bitbucket 帐户内的相关存储库。
它们存储在以下位置:
~/.ssh/rsa_generic_repos
~/.ssh/rsa_generic_repos.pub
~/.ssh/rsa_project1
~/.ssh/rsa_project1.pub
然后,在尝试任何 git 访问之前,我将这些密钥添加到我的 ssh-agent 中:
ssh-add ~/.ssh/rsa_generic_repos
ssh-add ~/.ssh/rsa_project1
ssh-add -l - 显示:
4096 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXX Generic Repo Key (RSA)
4096 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXX Project 1 Key (RSA)
我的问题:
这可以正常工作(克隆存储库):
git clone [email protected]:Myusername/generic-repo.com.git
这不起作用:
git clone [email protected]:Myusername/project1.com.git
Error:
Cloning into 'project1'...
repository access denied. deployment key is not associated with the requested repository.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
但如果我跑:
ssh-add -D
ssh-add ~/.ssh/rsa_project1
git clone [email protected]:Myusername/project1.com.git
它成功克隆了以前无法克隆的存储库。这首先表明在 bitbucket 上正确设置了公钥,并且 ssh 守护进程没有尝试使用除第一个条目之外的任何 ssh 密钥,因此导致上述错误。
如果有人可以帮助我找到一种方法让 ssh 遍历 ssh-agent 会话中存储的所有密钥,我将非常感激。
感谢您的帮助和时间。