Git SSH连接报错:kex与banner交换失败(Software caused connection abort)
解决SSH连接GitHub出现
kex_exchange_identification: read: Software caused connection abort的方案 1. 换用443端口连接GitHub
GitHub支持通过443端口提供SSH服务,多数网络环境下该端口不会被拦截。先执行测试命令:
ssh -p 443 git@github.com -vT
若测试成功,新建或修改本地~/.ssh/config文件,添加以下配置:
Host github.com Hostname ssh.github.com Port 443
2. 排查防火墙/安全软件拦截
重装系统后,系统防火墙或第三方安全软件可能默认拦截SSH出站请求:
- 临时关闭Windows防火墙(控制面板→Windows Defender防火墙→启用或关闭Windows Defender防火墙),重新测试连接
- 检查第三方安全软件的网络拦截规则,允许Git Bash或SSH客户端的网络请求
3. 重置SSH配置并重新生成密钥
系统自带的SSH配置可能存在冲突,按以下步骤重置:
- 备份
~/.ssh目录下的文件后,删除该目录内所有内容 - 重新生成Ed25519类型密钥:
ssh-keygen -t ed25519 -C "你的邮箱地址"
- 启动SSH代理并添加密钥:
eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
- 将新生成的公钥重新添加到GitHub账户
4. 清理或配置网络代理
若使用代理,需确保SSH代理配置正确:
- 查看当前代理环境变量:
echo $http_proxy $https_proxy
- 无需代理时,清空变量:
unset http_proxy https_proxy
- 需要代理时,在
~/.ssh/config中添加代理规则(以socks5代理为例):
Host github.com ProxyCommand nc -x 127.0.0.1:1080 %h %p
5. 降级OpenSSH版本
当前使用的OpenSSH 9.2p1可能存在兼容性问题,尝试降级到8.9p1版本:
- 下载对应版本的Git for Windows(内置OpenSSH),覆盖安装现有Git
- 安装完成后重新测试SSH连接
内容的提问来源于stack exchange,提问作者sw016428
相关产品推荐
相关产品推荐

