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

已关联GitHub SSH密钥仍遇权限拒绝,如何解决远程Git推送错误?

解决GitHub SSH推送时的Permission Denied (publickey)问题

我来帮你一步步排查这个问题,这种SSH权限拒绝的情况其实挺常见的,咱们从几个关键点入手:

1. 先确认本地SSH密钥是否在正常工作

有时候系统不会自动加载你的SSH密钥,导致GitHub识别不到。你可以先检查当前代理里的密钥:

ssh-add -l

如果输出里看不到你的密钥指纹,就手动加载它(默认私钥路径是~/.ssh/id_rsa,如果你的密钥名不一样就替换成对应的):

ssh-add ~/.ssh/id_rsa

然后测试和GitHub的SSH连通性:

ssh -T git@github.com

如果成功,会看到类似Hi 你的用户名! You've successfully authenticated, but GitHub does not provide shell access.的提示,这说明密钥本身是没问题的;如果还是报错,那大概率是密钥和GitHub的关联出了问题。

2. 核对GitHub上的公钥和本地是否完全匹配

  • 先查看本地公钥的完整内容:
cat ~/.ssh/id_rsa.pub
  • 登录GitHub,进入「Settings」→「SSH and GPG keys」,找到你添加的公钥,仔细核对内容:要确保从ssh-rsa开头到末尾的邮箱/备注完全一致,不能有多余的空格、换行或者拼写错误。

3. 检查自定义SSH配置文件(如果有的话)

如果你之前修改过~/.ssh/config文件,可能里面的配置会干扰GitHub的SSH连接。你可以查看一下:

cat ~/.ssh/config

针对GitHub的配置应该是这样的(如果没有就不用管):

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa

如果里面有错误的配置(比如指定了不存在的密钥路径),就修改或删除对应的条目。

4. 确认仓库的访问权限和地址正确性

  • 确保你是这个新建仓库的所有者,或者已经被添加为有推送权限的协作者;
  • 检查git remote -v输出的仓库地址:git@github.com:user/repo2.git里的repo2必须和你在GitHub上创建的仓库名称完全一致,大小写也要注意(GitHub仓库名是区分大小写的)。

5. 用详细日志定位深层问题

如果上面的步骤都没解决,你可以开启SSH的详细日志,看看连接过程中到底哪里出了问题:

ssh -vT git@github.com

日志里会详细显示系统尝试使用哪些密钥、每一步的连接状态,你可以根据日志里的错误提示(比如“Offer public key: ... rejected”)来进一步排查。

等你确认以上步骤都没问题后,再重新执行推送命令:

git push -u origin main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:24:29