查找密钥使用位置
要确定密钥已经被使用的地点,请打开终端并输入 ssh 命令。使用 -i 标志提供要检查的密钥路径。
$ ssh -T -ai ~/.ssh/id_rsa git@github.com
# Connect to GitHub.com using a specific ssh key
> Hi USERNAME! You've successfully authenticated, but GitHub does not
> provide shell access.
响应中的 username 表示该密钥当前关联的 GitHub.com 账户。如果响应类似于 "username/repo",则该密钥已作为 部署密钥 关联到某个仓库。
要强制 SSH 仅使用命令行上提供的密钥,请使用 -o 添加 IdentitiesOnly=yes 选项。
ssh -v -o "IdentitiesOnly=yes" -i ~/.ssh/id_rsa git@github.com
解决此问题
要解决此问题,首先从其他账户或仓库中移除该密钥,然后将其添加到您的账户。
如果您没有转移密钥的权限,且无法联系有此权限的用户,请删除密钥对并生成全新的密钥。
部署密钥
一旦密钥作为部署密钥附加到某个仓库,就不能再用于其他仓库。如果您在设置部署密钥时遇到此错误,请参阅 管理部署密钥。