You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Mac OS X ElCapitan下Git Push遇SSH连接关闭问题求助

解决Mac OS X El Capitan下SSH连接GitHub出现ssh_exchange_identification: Connection closed by remote host的问题

从你提供的ssh -vvv localhost调试输出里,我注意到一个关键信息:

debug1: Executing proxy command: exec ssh -q -W localhost:22 gateway.example.com

这说明你的SSH配置里正在尝试通过gateway.example.com这个代理服务器连接localhost,但你贴出的~/.ssh/config内容里并没有这部分代理配置——要么是你没贴全配置文件,要么是存在重复的Host *段(输出里提到了config的第1行和第18行都应用了*的选项),其中包含了ProxyCommand设置。这很可能就是导致连接失败的核心原因。

下面是具体的排查和解决步骤:

  • 临时禁用代理测试
    先执行这条命令绕开代理尝试连接本地SSH,看是否能正常工作:

    ssh -vvv -o ProxyCommand=none localhost
    

    如果这次能成功连接,那就坐实了代理配置是问题根源。

  • 清理SSH配置中的代理设置
    打开完整的~/.ssh/config文件,查找所有包含ProxyCommand的行,直接删除这些配置。如果你的全局代理是必须的,但只是针对GitHub不需要,那就单独给GitHub加一段配置:

    Host github.com
      ProxyCommand none
      IdentityFile ~/.ssh/id_rsa
      Protocol 2
    

    这样GitHub的连接就会跳过代理,其他主机依然可以使用全局配置。

  • 检查本地SSH服务是否运行
    在Mac上打开「系统偏好设置」→「共享」,确认「远程登录」选项是否勾选开启。如果没开,勾选后再测试ssh localhost是否能正常连接——本地SSH服务没启动也会导致这个错误。

  • 检查防火墙设置
    打开「系统偏好设置」→「安全性与隐私」→「防火墙」,点击「防火墙选项」,确认是否允许「远程登录(sshd)」接收连接。如果没有,添加并允许它。

按照这些步骤排查后,应该能解决你的连接问题。如果还是不行,可以再贴出完整的~/.ssh/config文件和ssh -vvv github.com的输出,方便进一步定位。

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

火山引擎 最新活动