返回

一键解决Github多账号管理难题,从此告别账号切换烦恼!

闲谈

在同一台机器上使用多个 GitHub 账号:解决“Permission to xxx.git denied to xx”错误的指南

一、问题的根源:Permission to xxx.git denied to xx 错误

当您在同一台机器上使用不同的 GitHub 账号进行 Git 操作时,您可能会遇到“Permission to xxx.git denied to xx”错误。这是因为 Git 默认使用 ~/.ssh/config 文件来管理 SSH 连接信息,而该文件只允许配置一个 GitHub 账号。当您使用不同的账号进行 Git 操作时,就会出现权限不足的错误。

二、解决方案

1. 使用 SSH 密钥对进行身份验证

使用 SSH 密钥对进行身份验证是一种安全可靠的方式,可以避免“Permission to xxx.git denied to xx”错误。

步骤:

  1. 生成 SSH 密钥对: 在终端中运行以下命令:

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    
  2. 将公钥添加到 GitHub: 登录 GitHub 网站,导航到“Settings”>“SSH and GPG keys”,然后点击“New SSH key”按钮。粘贴您的公钥。

  3. 配置 ~/.ssh/config 文件: 添加以下内容:

    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/id_rsa
    
  4. 测试连接: 运行 ssh git@github.com 以测试连接。

2. 使用个人访问令牌进行身份验证

个人访问令牌是 SSH 密钥对的替代方案,非常方便。

步骤:

  1. 生成个人访问令牌: 登录 GitHub,导航到“Settings”>“Developer settings”>“Personal access tokens”并生成令牌。

  2. 配置 ~/.gitconfig 文件: 添加以下内容:

    [github]
      username = your_username
      password = your_personal_access_token
    
  3. 测试连接: 克隆一个存储库以测试连接:

    git clone https://github.com/your_username/your_repository.git
    

三、常见问题解答

  1. 为什么使用多个 GitHub 账号?

    使用多个 GitHub 账号可以区分个人和工作项目,或管理不同的组织和团队。

  2. 是否可以同时使用 SSH 密钥对和个人访问令牌?

    不可以。一次只能使用一种身份验证方法。

  3. 如何更改 SSH 密钥对?

    生成一个新的密钥对并将其添加到 GitHub 和 ~/.ssh/config 文件。

  4. 如何吊销个人访问令牌?

    在 GitHub 网站上导航到“Settings”>“Developer settings”>“Personal access tokens”并吊销令牌。

  5. 其他解决“Permission to xxx.git denied to xx”错误的方法?

    • 确保 ~/.ssh/config 文件的权限正确。
    • 检查防火墙设置是否阻止了 SSH 连接。
    • 重新启动 SSH 代理。

结论

通过使用 SSH 密钥对或个人访问令牌,您可以解决“Permission to xxx.git denied to xx”错误,并可以在同一台机器上使用多个 GitHub 账号。这些方法安全可靠,可以简化 Git 工作流程。