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

SSH协议执行git clone失败,SSH连通正常却无法克隆GitHub仓库

SSH连通正常但Git Clone失败的排查方案

这种情况确实挺让人困惑的——明明ssh -T git@github.com能成功验证身份,可一用SSH协议执行git clone就报错。结合你给出的错误信息(尤其是FATAL: failed to begin relaying via HTTP),我整理了几个大概率的原因和解决办法:

1. Git配置里的代理或SSH命令被异常设置

Git的全局配置可能被添加了影响SSH连接的参数,导致它调用SSH的方式和你直接执行ssh命令时不一样。

  • 先检查当前Git的全局配置:
    git config --global --list
    
    重点看有没有core.sshCommand(指定了自定义的SSH命令)、http.proxy或https.proxy这类配置。如果存在这些项,很可能是它们导致SSH试图通过HTTP中继失败。
  • 若发现异常配置,比如多余的core.sshCommand,可以用以下命令删除:
    git config --global --unset core.sshCommand
    
    同理,删除异常的代理配置后,再尝试git clone。

2. SSH配置文件的特殊规则干扰

你的~/.ssh/config文件里可能针对github.com设置了特殊规则(比如ProxyCommand、自定义端口等),这些规则在单独执行ssh测试时正常,但Git调用SSH时出现了兼容性问题。

  • 先临时重命名SSH配置文件,排除它的影响:
    mv ~/.ssh/config ~/.ssh/config.bak
    
  • 然后重新执行git clone git@github.com:username/repertory.git,如果能成功,说明问题出在原来的SSH配置里,再逐行排查config.bak里的规则。

3. Git版本过低导致的兼容性问题

部分旧版本的Git(比如低于2.20版本)在与新版GitHub SSH服务交互时可能存在bug,导致连接失败。

  • 先检查当前Git版本:
    git --version
    
  • 如果版本较旧,尝试升级到最新稳定版,再测试SSH克隆是否正常。

4. 网络环境的针对性拦截

虽然HTTPS和git协议能正常使用,但某些防火墙或网关可能对Git的SSH流量做了特殊限制,而直接的ssh测试流量未被拦截。

  • 可以尝试切换到其他网络环境(比如手机热点)再试,排除本地网络的问题。
  • 也可以手动指定SSH端口执行克隆,规避可能的端口拦截:
    git clone ssh://git@github.com:22/username/repertory.git
    

从你报错里的failed to begin relaying via HTTP来看,Git或SSH被配置了HTTP代理是最有可能的原因,优先排查这部分配置应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:03:51