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

使用SSH推送至GitHub时出现连接超时错误的原因及解决方法

SSH连接GitHub端口22超时的排查与解决方法

可能的原因

  • 本地防火墙、杀毒软件拦截了SSH(22端口)的出站请求
  • 所在网络(公司内网、校园网等)的网关或运营商限制了22端口的访问
  • 本地SSH配置存在代理冲突,或未针对GitHub做适配

解决方法

1. 切换到GitHub的443端口SSH地址

这是最常用的绕过22端口限制的方法,操作步骤:

  • 先查看当前远程仓库地址:
    git remote -v
    
  • 将远程地址替换为443端口的SSH格式:
    git remote set-url origin git@ssh.github.com:443/你的用户名/你的仓库名.git
    
  • 执行git push测试,443端口是HTTPS默认端口,基本不会被网络拦截

2. 排查本地防火墙/安全软件

  • 临时关闭Windows防火墙或第三方杀毒软件的防护功能,重新执行git push
  • 如果测试成功,需要在防火墙规则中添加允许Git或OpenSSH客户端出站的规则,避免后续再次拦截

3. 配置SSH代理(针对需要代理上网的场景)

如果你的网络需要通过代理访问外网,编辑SSH配置文件:

  • Windows下路径:C:\Users\你的用户名\.ssh\config(文件不存在则新建)
  • 添加对应代理配置:
    • HTTP代理:
      Host github.com
        ProxyCommand connect -H 代理地址:端口 %h %p
      
    • SOCKS5代理:
      Host github.com
        ProxyCommand connect -S 代理地址:端口 %h %p
      

4. 测试SSH连通性

通过以下命令定位问题:

  • 测试22端口连通性:
    ssh -T git@github.com
    
  • 测试443端口连通性:
    ssh -T -p 443 git@ssh.github.com
    

如果443端口能连通,说明22端口确实被限制,直接用方法1即可解决。

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

火山引擎 最新活动