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

如何解决通过Git连接学校GitLab实例时的SSH超时错误?

SSH连接学校GitLab实例超时,密钥已正确配置仍无法解决

我一直在个人电脑上尝试通过SSH连接学校的GitLab实例,但持续收到连接超时错误。已经按教程完成所有操作,且确认生成的SSH密钥已正确添加到学校GitLab账户中,但问题依旧。以下是执行的操作及输出(敏感信息已隐藏):

PS C:\Users\brianna> ssh-keygen -t rsa -b 2048 -C "MY EMAIL"
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\brianna/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\brianna/.ssh/id_rsa
Your public key has been saved in C:\Users\brianna/.ssh/id_rsa.pub
The key fingerprint is:
> REVOKED FOR PRIVACY
The key's randomart image is:
> REVOKED FOR PRIVACY
PS C:\Users\brianna> cat ~/.ssh/id_rsa.pub
> REVOKED FOR PRIVACY
PS C:\Users\brianna> ssh -T git@gitlab.MYSCHOOLDOMAIN.ca
ssh: connect to host gitlab.MYSCHOOLDOMAIN.ca port 22: Connection timed out
PS C:\Users\brianna> ssh -Tvvv git@gitlab.MYSCHOOLDOMAIN.ca
OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3
debug3: Failed to open file:C:/Users/brianna/.ssh/config error:2
debug3: Failed to open file:C:/ProgramData/ssh/ssh_config error:2
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> 
'C:\\Users\\brianna/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> 
'C:\\Users\\brianna/.ssh/known_hosts2'
debug1: Authenticator provider $SSH_SK_PROVIDER did not resolve; disabling
debug2: resolving "gitlab.MYSCHOOLDOMAIN.ca" port 22
debug3: ssh_connect_direct: entering
debug1: Connecting to gitlab.MYSCHOOLDOMAIN.ca [IP.ADDRESS] port 22.
debug3: finish_connect - ERROR: async io completed with error: 10060, 
io:00000266FA540080
debug1: connect to address IP.ADDRESS port 22: Connection timed out
ssh: connect to host gitlab.MYSCHOOLDOMAIN.ca port 22: Connection timed out

排查与解决步骤

1. 确认学校GitLab是否使用非标准SSH端口

很多学校内部GitLab实例可能不会使用默认的22端口,而是改用443或其他端口。尝试用指定端口的方式连接:

ssh -T -p 443 git@gitlab.MYSCHOOLDOMAIN.ca

如果不确定端口,可查看学校GitLab的帮助文档,或联系IT管理员确认。

2. 检查本地防火墙/杀毒软件拦截

Windows防火墙或第三方杀毒软件可能会阻止SSH出站连接到端口22。临时关闭防火墙或杀毒软件,再次尝试连接,若成功则需添加SSH到允许列表。

3. 验证网络环境是否允许访问学校GitLab

  • 若使用家庭网络,可能学校GitLab实例仅允许校园网或VPN访问。尝试连接学校VPN后再执行SSH命令。
  • 用以下命令测试网络连通性:
    ping gitlab.MYSCHOOLDOMAIN.ca
    telnet gitlab.MYSCHOOLDOMAIN.ca 22
    
    如果ping不通或telnet连接失败,说明网络层面存在阻断,需联系学校IT排查。

4. 配置SSH config文件(可选)

创建或编辑C:\Users\brianna\.ssh\config文件,添加以下内容(替换实际端口和域名):

Host gitlab.MYSCHOOLDOMAIN.ca
  HostName gitlab.MYSCHOOLDOMAIN.ca
  User git
  Port 22
  IdentityFile C:\Users\brianna\.ssh\id_rsa

保存后再次尝试ssh -T git@gitlab.MYSCHOOLDOMAIN.ca。

5. 检查GitLab账户的SSH密钥状态

再次登录学校GitLab账户,确认添加的公钥是否与本地id_rsa.pub内容完全一致,且密钥未被标记为过期或禁用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:08:23