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

Github多账号仓库推送报403错误,如何解决?

解决多GitHub账号推送权限被拒的问题

兄弟,这个问题我太熟了——你现在的情况是Git默认用了Account-1的账号(rahulTcs)去访问Account-2的仓库(micheal的simple-demo),自然会触发403权限拒绝。给你几个实用的解决办法,按需选择:

方法1:给当前仓库的HTTPS地址指定Account-2用户名(快速临时解决)

HTTPS方式下Git会优先用全局保存的凭证,直接给project2的远程URL加上Account-2的用户名,就能强制Git用这个账号的身份推送:

  • 先查看当前远程地址:git remote -v
  • 修改为带用户名的HTTPS链接:git remote set-url origin https://micheal@github.com/micheal/simple-demo.git
  • 下次执行git push origin master时,Git会提示你输入Account-2的密码(或者个人访问令牌,现在GitHub已限制密码直接登录仓库操作),输入后就能正常推送了。

方法2:用SSH密钥区分账号(长期切换推荐,一劳永逸)

如果经常在两个账号间切换,SSH方式更省心,每个账号用独立的密钥:

  1. 为Account-2生成专属SSH密钥:
    在终端执行:ssh-keygen -t ed25519 -C "your-account2-email@example.com"
    生成过程中注意不要覆盖Account-1的密钥(默认文件名是id_ed25519,可以命名为id_ed25519_account2来区分)
  2. 把新密钥添加到Account-2的GitHub账号:
    执行cat ~/.ssh/id_ed25519_account2.pub复制密钥内容,然后登录Account-2的GitHub,进入Settings -> SSH and GPG keys,点击"New SSH key"粘贴添加。
  3. 配置SSH配置文件,让不同仓库对应不同密钥:
    在~/.ssh/config(Windows路径是C:\Users\你的用户名\.ssh\config,如果没有就新建这个文件)里添加:
    Host github.com-account2
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_account2
    
  4. 修改project2的远程URL为对应SSH地址:
    git remote set-url origin git@github.com-account2:micheal/simple-demo.git
    之后再推送,Git会自动用Account-2的密钥验证,不会和Account-1冲突。

方法3:清理全局Git凭证(临时应急,不推荐长期用)

如果只是偶尔切换账号,可以清空Git保存的全局凭证,下次推送时重新输入对应账号的信息:

  • Windows:打开「凭据管理器」,找到「Windows凭据」里的GitHub相关条目,删除即可。
  • Mac:终端执行security delete-generic-password -a "github.com"
  • Linux:如果用的是libsecret凭证助手,执行git config --global credential.helper unset,下次推送会重新提示输入账号密码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:29:33