Windows 7 Pro下Git推送GitHub出现Permission denied(publickey)错误如何解决
错误原因
该报错为SSH公钥认证失败导致,触发原因通常为三类:本地未生成SSH密钥/生成的公钥未绑定到GitHub账号、本地SSH配置错误、远程仓库地址填写错误/当前账号无该仓库的读写权限。
解决步骤
- 方案一:快速切换为HTTPS协议推送(无需配置SSH,适合临时使用场景)
- 执行命令修改远程仓库地址:
git remote set-url origin https://github.com/NaingMinZaw/learningGit.git - 重新执行推送命令即可,后续推送时按提示输入GitHub账号及认证令牌即可。
- 执行命令修改远程仓库地址:
- 方案二:配置SSH公钥完成认证(后续无需重复输入账号信息)
- 先验证本地是否已生成SSH密钥,PowerShell执行命令:
ls ~/.ssh
若返回结果存在id_rsa(私钥文件)和id_rsa.pub(公钥文件),可跳过下一步生成步骤。 - 若无上述文件,执行命令生成SSH密钥,命令中邮箱替换为你GitHub账号绑定的邮箱:
ssh-keygen -t rsa -C "你的GitHub绑定邮箱"
后续提示全部按回车确认即可,无需自定义存储路径或设置访问密码。 - 打开用户目录下的
.ssh文件夹,用记事本打开id_rsa.pub文件,全选复制文件内的所有内容。 - 登录GitHub账号,进入账号设置页,找到「SSH and GPG keys」选项,点击「New SSH key」,自定义填写标题后,将复制的公钥内容粘贴到对应输入框保存。
- 回到PowerShell执行命令测试SSH连通性:
ssh -T git@github.com
若返回提示包含You've successfully authenticated字段,说明公钥配置生效。 - 重新执行推送命令即可正常提交:
git push -u origin main
- 先验证本地是否已生成SSH密钥,PowerShell执行命令:
特殊情况排查
如果按上述步骤操作后仍报错,可检查以下内容:
若你自定义了SSH密钥的文件名,需在
.ssh目录下新建config文件,添加如下配置:
Host github.com
IdentityFile ~/.ssh/你的自定义密钥文件名
User git
确认你绑定公钥的GitHub账号对目标仓库有读写权限,若仓库属于其他组织/用户,需先获得对应授权。
内容的提问来源于stack exchange,提问作者NaingMinZaw
相关产品推荐
相关产品推荐

