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

无法连接GitHub但其他Git仓库正常,密钥交换算法协商失败求助

解决GitHub克隆时密钥交换算法协商失败的问题

根据你描述的情况——Win7 64位系统,用Pageant做SSH代理,重装系统后克隆GitHub公库报错密钥交换算法不匹配,但私库、Bitbucket正常,直接ssh连接GitHub能成功——我整理了几个针对性的解决方案,你可以逐一尝试:

方案一:切换到Git自带的OpenSSH(最推荐)

你直接用ssh git@github.com能成功认证,说明Git Bash自带的OpenSSH是兼容GitHub的,问题出在你配置的PuTTY系列工具(plink/TortoisePlink)上。可以让Git改用自带的OpenSSH:

  1. 打开Git Bash,先检查当前Git的SSH配置:
    git config --global core.sshCommand
    
  2. 如果输出是指向plink或TortoisePlink的路径,执行命令清除该配置:
    git config --global --unset core.sshCommand
    
  3. 检查系统环境变量GIT_SSH:
    • 右键「计算机」→「属性」→「高级系统设置」→「环境变量」
    • 如果GIT_SSH的值是plink.exe或TortoisePlink.exe的路径,要么删除这个环境变量,要么把它改成Git自带的ssh.exe路径(通常在C:\Program Files\Git\usr\bin\ssh.exe或C:\Program Files (x86)\Git\usr\bin\ssh.exe,根据你的Git安装位置调整)
  4. 重启你的Git Bash或PhpStorm,再尝试克隆仓库。

方案二:修复PuTTY工具的密钥交换算法配置

如果你坚持要用PuTTY系列工具,可以调整PuTTY的KEX算法设置:

  1. 运行putty.exe,在左侧导航栏依次展开Connection > SSH > Kex
  2. 在「Allowed KEX algorithms」输入框中,确认包含GitHub报错提示的算法:
    curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521
    
    如果没有,把这些算法添加进去(注意用逗号分隔,不要加空格)
  3. 回到「Session」界面,选中默认会话后点击「Save」保存配置
  4. 先手动用plink缓存GitHub的主机密钥:
    plink git@github.com
    
    按提示输入y保存密钥,之后再执行Git克隆命令,避免交互卡住的问题
  5. 确认Pageant里已经正确加载了你的SSH密钥(右键任务栏的Pageant图标,查看已加载的密钥)

方案三:更新Git版本

你的Git版本是2.16.2.windows.1,属于比较旧的版本,可能存在一些兼容性问题。Win7支持的最新Git版本是2.33.x系列(后续版本不再支持Win7),你可以更新到这个版本,新版本的自带OpenSSH会支持更多现代密钥交换算法,大概率能解决问题。

验证方法

不管用哪个方案,都可以先执行以下命令查看SSH连接的详细日志,确认密钥交换算法协商成功:

ssh -v git@github.com

如果日志里显示debug1: kex: algorithm: curve25519-sha256@libssh.org(或其他GitHub支持的算法),说明配置没问题,再尝试克隆仓库即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:52:30