You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多GitHub账户权限错误:推送代码时提示权限被拒如何解决?

解决GitHub权限错误:切换至新账户并正常推送代码

你遇到的这个权限问题,核心原因是当前Git操作仍在使用旧账户的身份认证信息——哪怕你已经给新账户添加了SSH密钥,系统还是优先调用旧的关联配置。咱们一步步来彻底解决:

1. 先修正本地Git的账户配置

首先确认你的本地仓库(或全局Git设置)是不是还挂着旧账户的信息:

  • 进入项目目录,在终端运行:
    git config user.name
    git config user.email
    
    如果输出是旧账户的用户名和邮箱,立刻改成新账户的信息:
    # 仅当前项目生效
    git config user.name "你的新GitHub用户名"
    git config user.email "你的新GitHub绑定邮箱"
    
    # 全局所有仓库生效,加 --global 参数
    git config --global user.name "你的新GitHub用户名"
    git config --global user.email "你的新GitHub绑定邮箱"
    

2. 强制指定SSH密钥使用新账户

系统可能还在默认使用旧账户的SSH密钥,咱们先验证当前SSH连接的身份:

  • 运行测试命令:
    ssh -T git@github.com
    
    如果输出是Hi JoSmith17! You've successfully authenticated...,说明现在用的还是旧密钥。

配置SSH优先使用新密钥:

  • 先查看本地所有SSH密钥文件:
    ls -la ~/.ssh
    
    你会看到旧密钥(比如id_rsa/id_rsa.pub)和你新创建的密钥文件(比如id_rsa_new/id_rsa_new.pub)。
  • 编辑(或新建)SSH配置文件,指定GitHub连接用新密钥:
    nano ~/.ssh/config
    
    粘贴以下内容(替换成你的新密钥文件名):
    Host github.com
      HostName github.com
      User git
      IdentityFile ~/.ssh/你的新密钥文件名(比如id_rsa_new)
    
    保存退出(nano中按Ctrl+O回车,再按Ctrl+X)。
  • 重新测试SSH连接,现在应该输出新账户的认证信息:
    ssh -T git@github.com
    

3. 更新远程仓库的关联URL

有时候本地仓库的远程地址还是绑定旧账户的仓库,检查并修正:

  • 查看当前远程地址:
    git remote -v
    
    如果输出是git@github.com:JoSmith17/beerholic-pokemon.git,立刻改成新账户的仓库地址:
    git remote set-url origin git@github.com:techjems17/beerholic-pokemon.git
    

4. 清空旧SSH缓存(可选,若上述步骤无效)

系统可能缓存了旧的SSH连接信息,清空后重新加载新密钥:

# 清空所有缓存的SSH密钥
ssh-add -D
# 添加新密钥到SSH代理
ssh-add ~/.ssh/你的新密钥文件名

最后测试推送

现在尝试重新推送代码:

git push origin 你的分支名(比如main)

这样就能彻底切换到新账户,解决权限问题了。

内容的提问来源于stack exchange,提问作者Jordan Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:55