GitLab远程推送失败:SSH端口22/443连接被拒绝求助
排查GitLab SSH推送失败(端口22连接被拒)的可行方案
我来帮你一步步梳理排查方向,毕竟共享服务器的网络环境经常会有一些容易忽略的限制:
先测试不同端口的连通性
GitLab支持通过443端口走SSH协议,很多共享服务器的防火墙会放行443但限制22端口出站。你可以先执行这两个命令对比结果:ssh -T git@gitlab.com -p 22 ssh -T git@gitlab.com -p 443如果443端口能正常返回
Welcome to GitLab, @你的用户名!,说明服务器22端口出站被限制了。这时候可以修改SSH配置默认用443连接GitLab:
在~/.ssh/config文件(没有的话直接新建)里添加:Host gitlab.com Hostname altssh.gitlab.com User git Port 443保存后再尝试推送,大概率能解决问题。
对比GitHub与GitLab的网络连通性
既然其他用户连GitHub 22端口没问题,你可以用telnet命令做个对比测试:telnet github.com 22 telnet gitlab.com 22如果GitHub能返回SSH服务的欢迎信息,而GitLab直接显示
Connection refused,基本可以确定是共享服务器的出站防火墙/安全组单独限制了GitLab的22端口访问。这种情况你需要联系服务器管理员,确认是否有针对GitLab IP段的拦截规则。快速检查本地SSH配置与密钥状态
虽然你之前操作正常,但也可以快速排除本地问题:- 执行
ssh-add -l,确认你的SSH密钥是否在本地代理中正常加载 - 检查
~/.ssh/config里有没有针对gitlab.com的错误配置(比如写错主机名或端口) - 登录GitLab账户,确认你的公钥是否还在「SSH密钥」列表中,有没有被误删除
- 执行
确认GitLab服务状态
偶尔GitLab的22端口服务会出现临时故障,你可以查看GitLab官方的状态页面,确认是否有相关的服务中断公告。
内容的提问来源于stack exchange,提问作者user3375672




