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

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复用。

永久修复步骤

  1. 修正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密钥干扰认证流程。

  1. 配置ssh-agent服务自动启动
    以管理员身份打开PowerShell,依次执行以下命令,将系统自带的ssh-agent服务设置为开机自动启动并立即运行:
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
  1. 永久加载私钥到ssh-agent
    在任意终端执行以下命令,将私钥添加到ssh-agent存储中,后续所有新终端、VSCode都会自动复用认证状态:
ssh-add ~/.ssh/id_rsa

注意:该命令后接的是私钥路径,不要填写带.pub后缀的公钥文件

  1. 验证效果
    新开终端窗口(包括VSCode集成终端)执行ssh -T git@github.com,返回认证成功提示后,直接执行git push即可正常推送,无需每次手动启动ssh-agent。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:33:15