我在尝试将代码推送到两个不同 GitHub 帐户(即 James 和 John)下托管的存储库时遇到问题。最初,我只使用 James 帐户下的存储库,现在我也尝试添加 John 帐户。尽管按照以下步骤为两个帐户配置 SSH 密钥,我还是遇到了错误。
以下是我采取的步骤:
使用以下命令为 James 帐户创建私钥/公钥对:
ssh-keygen -t ed25519 -C "[email protected]" -f james_key
使用以下方式将密钥添加到 SSH 代理:
ssh-add ~/.ssh/james_key
对 John 帐户重复相同的过程:
ssh-keygen -t ed25519 -C "[email protected]" -f johns_key
将密钥添加到 SSH 代理:
ssh-add ~/.ssh/johns_key
在~/.ssh/config配置SSH配置文件,如下:
# James GitHub account
Host github.com-james
HostName github.com
User git
IdentityFile ~/.ssh/james_key
# Johns GitHub account
Host github.com-john
HostName github.com
User git
IdentityFile ~/.ssh/johns_key
已成功将 James 和 John 各自的公钥复制到 GitHub SSH 密钥和 GPG 密钥部分。
但是,当尝试将代码推送到 John 帐户下的存储库时,我遇到以下错误消息:
错误:未找到存储库。致命:无法从远程读取 存储库。
请确保您拥有正确的访问权限
此外,当在 John 的存储库中运行命令
ssh -T [email protected]
时,该消息表明 James 已成功通过身份验证。这表明,尽管进行了配置,SSH 客户端仅识别 James 的设置,而不识别 John 的设置。
有人可以指导我如何纠正这个问题吗?非常感谢您的帮助。
我认为您可以通过在 SSH 配置文件中为 John 帐户指定不同的 SSH 密钥文件来轻松解决此问题,因此首先像这样编辑 SSH 配置文件:
# James GitHub account
Host github.com-james
HostName github.com
User git
IdentityFile ~/.ssh/james_key
# Johns GitHub account
Host github.com-john
HostName github.com
User git
IdentityFile ~/.ssh/johns_key
现在尝试从 SSH 代理中删除任何现有的 SSH 密钥,然后再次将密钥添加到代理中,如下所示
ssh-add -D
ssh-add ~/.ssh/james_key
ssh-add ~/.ssh/johns_key
现在,当您将代码推送到 John 帐户下的存储库时,应该使用正确的 SSH 密钥进行身份验证,您可以像这样测试您的连接
ssh -T [email protected]