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

通过SSH连接GitHub时出现Permission denied (public key)错误求助

SSH连接GitHub返回Permission denied (public key) 排查方案

首先纠正测试命令输入错误:正确的连通性测试命令为ssh -vT git@github.com,你使用的ssh-key为无效命令。

可按以下顺序逐一排查问题:

  • 检查密钥文件权限
    Linux/macOS环境下,执行ls -al ~/.ssh确认权限符合要求:.ssh目录权限为700,id_rsa私钥权限为600,id_rsa.pub公钥权限为644。如果权限不符合,执行以下命令修正:
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/id_rsa
    chmod 644 ~/.ssh/id_rsa.pub
    
    Windows环境下,检查id_rsa私钥文件的所有者为当前登录用户,且仅当前用户拥有该文件的读写权限,删除其他所有用户的权限配置。
  • 检查私钥是否已加入SSH代理
    执行ssh-add -l查看已加载的密钥列表,如果没有对应密钥的指纹记录,先启动SSH代理:
    Linux/macOS执行eval "$(ssh-agent -s)",Windows在系统服务中启动OpenSSH Authentication Agent服务并设置为自动启动,再执行ssh-add ~/.ssh/id_rsa加载对应私钥。
  • 校验公钥内容完整性
    公钥内容为完整一行,开头为ssh-rsa/ssh-ed25519,结尾为你生成密钥时设置的邮箱/注释,复制时不能额外添加空格、换行、遗漏字符。执行cat ~/.ssh/id_rsa.pub输出本地公钥内容,和GitHub账号中添加的公钥内容逐字符对比,确保完全一致。
  • 检查SSH配置文件
    查看~/.ssh/config文件中是否存在Host github.com配置项,如有则确认IdentityFile参数指向的私钥路径和你生成的私钥路径完全匹配;如果你生成密钥时自定义了文件名,未在配置中指定的话SSH会默认查找id_rsa文件,导致匹配失败。
  • 确认公钥添加位置与账号权限
    公钥需要添加到GitHub个人账号设置的SSH Keys栏目,而非单个仓库的部署密钥(部署密钥默认仅拥有读权限,且无法关联多个仓库)。同时确认当前使用的GitHub账号拥有你要访问的仓库的对应权限。
  • 处理RSA算法兼容问题
    GitHub已禁用SHA-1签名的RSA密钥,如果你使用的是RSA类型密钥,查看ssh -vT git@github.com的调试输出如果有no mutual signature algorithm报错,可选择生成安全性更高的ed25519类型密钥:
    ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
    
    重新将新生成的公钥添加到GitHub即可,也可在~/.ssh/config中添加以下配置兼容老RSA密钥:
    Host github.com
      PubkeyAcceptedKeyTypes +ssh-rsa
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:15:06