目录

GitHub SSH 无响应卡住的解决方案:改用 443 端口、HTTPS 与代理排查全指南

GitHub SSH 无响应卡住的解决方案:改用 443 端口、HTTPS 与代理排查全指南

当你执行 ssh -T [email protected] 没有任何反应(长时间卡住),说明本地到 GitHub 的 SSH 端口(22)被阻断或极不稳定。常见于中国大陆、部分云服务器、公司/校园网络,香港服务器偶尔也会遇到。


解决方法

1. 直接改用 HTTPS(推荐)

  • 使用仓库的 HTTPS 地址进行 clone/pull/push,通常更稳定。
  • 搭配 Personal Access Token(PAT)作为密码登录。

2. 修改 SSH 端口为 443

有些网络 22 端口被封,但 443 可用。可以让 SSH 走 443 端口:

将以下配置添加到 ~/.ssh/config

Host github.com
    HostName ssh.github.com
    User git
    Port 443

然后测试:

3. 检查网络连通性

  • ping github.com 或使用 telnet github.com 22/telnet ssh.github.com 443 测试。
  • 尝试切换网络(手机热点/宽带)、使用 VPN 或代理。

4. 配置代理(如有梯子)

如果你有 HTTP/SOCKS5 代理,可让 ssh 走代理:

临时环境变量方式:

export ALL_PROXY=socks5://127.0.0.1:1080
ssh -T [email protected]

或在 ~/.ssh/config 中使用 ProxyCommand:

Host github.com
    HostName ssh.github.com
    User git
    Port 443
    ProxyCommand nc -x 127.0.0.1:1080 %h %p

其他建议

  • 检查本机防火墙、云服务器安全组,确保 22/443 出站未被封锁。
  • 公司/校园网络可能需要联系网管或使用合规 VPN。
  • 如果长期遇到 SSH 不稳定,优先使用 HTTPS + PAT,可避免 SSH 端口受限问题。