Win10执行git push提示id_rsa.pub格式无效 临时配置重启失效如何解决
Windows 10 下Git推送SSH公钥报错永久修复方案
报错现象
执行git push时返回以下错误:
Load key "/c/Users/Tnxts/.ssh/id_rsa.pub": invalid format git@20.205.243.166: Permission denied (publickey).
手动执行以下命令可以临时解决,但关闭当前Shell、打开新窗口或使用VSCode集成终端时故障复现:
eval `ssh-agent -s` ssh-add ~/.ssh/id_rsa.pub
原SSH配置内容:
Host github.com HostName 20.205.243.166 User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa.pub
报错截图:
SSH报错信息截图
故障根因
- 核心配置错误:SSH配置中
IdentityFile字段错误指向了公钥文件id_rsa.pub。SSH本地认证需要读取无.pub后缀的私钥文件,公钥仅需要上传到GitHub账号后台,本地把公钥当私钥读取自然会报格式无效错误。 - 临时方案生效范围有限:手动启动
ssh-agent加载密钥的操作仅对当前Shell会话生效,窗口关闭后ssh-agent进程终止,加载的密钥状态会直接丢失,无法被新会话或VSCode复用。
永久修复步骤
- 修正SSH配置
打开用户目录下的.ssh/config文件,将原有GitHub相关配置替换为以下内容:
Host github.com HostName 20.205.243.166 User git PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
新增
IdentitiesOnly yes配置是为了强制SSH仅使用指定的私钥认证,避免系统内其他SSH密钥干扰认证流程。
- 配置ssh-agent服务自动启动
以管理员身份打开PowerShell,依次执行以下命令,将系统自带的ssh-agent服务设置为开机自动启动并立即运行:
Get-Service ssh-agent | Set-Service -StartupType Automatic Start-Service ssh-agent
- 永久加载私钥到ssh-agent
在任意终端执行以下命令,将私钥添加到ssh-agent存储中,后续所有新终端、VSCode都会自动复用认证状态:
ssh-add ~/.ssh/id_rsa
注意:该命令后接的是私钥路径,不要填写带.pub后缀的公钥文件
- 验证效果
新开终端窗口(包括VSCode集成终端)执行ssh -T git@github.com,返回认证成功提示后,直接执行git push即可正常推送,无需每次手动启动ssh-agent。
内容的提问来源于stack exchange,提问作者Tnxts
相关产品推荐
相关产品推荐

