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

GitLab SSH连接始终超时(已尝试更换SSH端口)

解决GitLab SSH连接建立后超时的问题

问题分析

从你提供的调试日志来看,TCP连接已成功建立到altssh.gitlab.com:443,但在SSH密钥交换阶段超时。结合你私人设备可正常连接、公司设备HTTPS访问GitLab无问题的情况,核心原因大概率是公司防火墙的深度协议检测拦截了SSH流量:防火墙允许443端口的TCP连接,但会识别并阻断非HTTPS协议的流量。

解决方案

1. 将SSH流量伪装为HTTPS(绕过协议检测)

修改~/.ssh/config,用SSL封装SSH流量,让其看起来和普通HTTPS请求一致:

Host gitlab.com
  Hostname gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519
  ProxyCommand openssl s_client -connect %h:%p -quiet

修改后执行ssh -T git@gitlab.com测试,若防火墙仅做协议检测,此方法大概率生效。

2. 通过公司HTTPS代理转发SSH

如果公司要求通过代理访问外部网络,可配置SSH走代理:

  • 先安装代理工具:sudo apt install connect-proxy
  • 编辑~/.ssh/config(替换proxy-host和proxy-port为公司实际代理地址):
Host gitlab.com
  Hostname gitlab.com
  User git
  Port 22
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_ed25519
  ProxyCommand connect -H proxy-host:proxy-port %h %p

3. 调整WSL网络模式

WSL默认NAT模式可能和Windows防火墙/代理冲突,尝试切换到桥接模式:

  1. 打开Windows管理员终端,执行:
wsl --shutdown
# 替换"以太网"为你的物理网卡名称,可在Windows设置-网络中查看
netsh interface ipv4 set interface "以太网" metric=10
wsl --set-version Ubuntu-22.04 2
  1. 重新启动WSL后测试SSH连接。

4. 联系公司IT部门

若以上方法均无效,说明公司防火墙规则严格,需申请IT部门开放GitLab SSH相关流量,可提供GitLab官方公布的IP范围及端口说明。

验证方式

每次修改配置后,执行ssh -Tvvv git@gitlab.com,若日志中出现Welcome to GitLab, @你的用户名!则说明连接成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 21:12:28