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

Git推送GitHub仓库报权限拒绝错误的排查解决方案

GitHub SSH推送权限报错修复方案

问题表现

执行Git clone可正常拉取代码,但推送分支时返回如下报错:

(base) guoling@Guo-MacBook-Pro test % git push --set-upstream origin test-branch

ERROR: Permission to guoling9419/test.git denied to myGitHubUsername.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

运行环境为macOS Monterey 12.4,已生成SSH公私钥对并将公钥添加至GitHub账号,此前意外覆盖过~/.ssh/config文件,修复后调试结果如下:

  • 执行ssh -T git@github.com返回Hi myGitHubUsername! You've successfully authenticated, but GitHub does not provide shell access.
  • 执行ssh github返回ssh: Could not resolve hostname github: nodename nor servname provided, or not known
  • 执行eval "$(ssh-agent -s)"返回Agent pid 50031
  • 执行ssh-add -l -E sha256、ssh-add -l -E md5均返回The agent has no identities.

根因判断

  1. ssh -T认证成功说明公钥已正确绑定GitHub账号,网络链路、公钥配置本身无问题
  2. ssh-add返回无身份信息,说明ssh-agent未加载本地私钥,是覆盖ssh配置文件后常见的加载异常
  3. ssh github解析失败属于正常现象,当前config中配置的Host别名为github.com,不存在github这个别名,无需处理

修复步骤

  • 修复SSH文件权限,SSH对配置、私钥文件权限有严格要求,权限不符合会直接拒绝读取:
    chmod 600 ~/.ssh/config
    chmod 600 ~/.ssh/id_rsa
    
  • 将私钥加载到ssh-agent并写入macOS钥匙串,避免每次重启后需要重新加载:
    ssh-add --apple-use-keychain ~/.ssh/id_rsa
    
    执行后如果提示输入私钥密码,填写生成密钥时设置的密码即可。执行完成后运行ssh-add -l,如果能输出对应密钥的指纹信息,说明加载成功。
  • 校验本地仓库关联的远程仓库地址:
    进入本地仓库目录执行git remote -v,查看origin对应的推送、拉取地址。如果地址为HTTPS格式,或SSH地址中仓库所属用户名、仓库名书写错误,执行如下命令修正为正确的SSH地址:
    git remote set-url origin git@github.com:guoling9419/test.git
    
  • 验证推送:
    先重新执行ssh -T git@github.com确认认证正常,再执行推送命令即可:
    git push --set-upstream origin test-branch
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:12:31