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

Windows 10下Git for Windows无法通过PuTTY/Pageant做SSH认证如何排查

解决方案

1. 修复环境变量不生效问题

你遇到的cmd中GIT_SSH正常、Git Bash中为空的问题,是环境变量修改后未同步到所有进程导致:

  • 修改系统级GIT_SSH变量后,必须重启Windows资源管理器或直接重启设备,所有已启动的进程才会读取到新的环境变量配置
  • 如果你配置的是用户级环境变量,需确认运行Git、GitExtensions的账号和配置变量的账号一致,不要混用管理员/普通账号启动程序

2. 强制Git使用plink作为SSH客户端

新版本Git for Windows默认优先使用内置OpenSSH客户端,会忽略GIT_SSH变量,需手动指定SSH客户端:
打开Git Bash执行命令:

git config --global core.sshCommand "'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe'"

注意路径内外的双层引号不可省略,确保带空格的路径可被正确识别。

3. 验证plink与Pageant连通性

先确认Pageant已正常运行,且对应私钥已加载到Pageant中,打开cmd执行以下测试命令:

"C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe" -T git@gitlab.example.com
  • 如果返回GitLab欢迎信息,说明认证正常
  • 如果仍要求输入密码,优先排查两个问题:
    • 对应公钥是否已正确添加到GitLab账号的SSH密钥列表中
    • 此前未用PuTTY连接过gitlab.example.com:plink第一次连接新站点会弹出主机密钥确认弹窗,后台运行的Git无法处理该交互就会报错,你需要手动打开PuTTY连接一次gitlab.example.com,选择接受主机密钥并保存站点配置即可。

4. 修正GitExtensions配置

打开GitExtensions设置页,找到「SSH」配置项:

  • SSH客户端选择PuTTY,不要选择OpenSSH
  • 确认plink.exe路径和你GIT_SSH变量配置的路径完全一致
  • 勾选「Use Pageant」选项
    配置完成后重启GitExtensions再执行克隆操作即可。

5. 协议错误说明

你遇到的fatal: protocol error: bad line length character: git@报错,是因为SSH客户端返回了密码输入的交互提示,Git将文本内容当成SSH协议内容解析抛出的格式错误,解决SSH认证问题后该报错会自动消失。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:54:03