通过 SSH 配置问题将代码推送到多个 GitHub 帐户下的存储库

问题描述 投票:0回答:1

我在尝试将代码推送到两个不同 GitHub 帐户(即 James 和 John)下托管的存储库时遇到问题。最初,我只使用 James 帐户下的存储库,现在我也尝试添加 John 帐户。尽管按照以下步骤为两个帐户配置 SSH 密钥,我还是遇到了错误。

以下是我采取的步骤:

  1. 使用以下命令为 James 帐户创建私钥/公钥对:

    ssh-keygen -t ed25519 -C "[email protected]" -f james_key

使用以下方式将密钥添加到 SSH 代理:

   ssh-add ~/.ssh/james_key
  1. 对 John 帐户重复相同的过程:

    ssh-keygen -t ed25519 -C "[email protected]" -f johns_key

将密钥添加到 SSH 代理:

 ssh-add ~/.ssh/johns_key
  1. ~/.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
    
  2. 已成功将 James 和 John 各自的公钥复制到 GitHub SSH 密钥和 GPG 密钥部分。

但是,当尝试将代码推送到 John 帐户下的存储库时,我遇到以下错误消息:

错误:未找到存储库。致命:无法从远程读取 存储库。

请确保您拥有正确的访问权限

此外,当在 John 的存储库中运行命令

ssh -T [email protected]
时,该消息表明 James 已成功通过身份验证。这表明,尽管进行了配置,SSH 客户端仅识别 James 的设置,而不识别 John 的设置。

有人可以指导我如何纠正这个问题吗?非常感谢您的帮助。

github ssh config
1个回答
0
投票

我认为您可以通过在 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]
© www.soinside.com 2019 - 2024. All rights reserved.