Gitlab使用SSH无法克隆,报22端口连接超时,调整443端口仍无效
GitLab SSH克隆超时问题解决方案
1 端口连通性排查
- 首先验证目标GitLab实例22端口是否可达,执行命令:
telnet gitlab.example.com 22
若返回超时,说明你当前所处的网络(公司防火墙、运营商限制、路由器规则等)屏蔽了SSH默认22端口。 - 若你尝试过配置SSH走443端口,需先确认对应GitLab服务端是否开启了SSH over HTTPS能力:自建GitLab默认不会开启该配置,仅客户端单独修改端口无法生效。
2 本地SSH配置校验
确认你的本地SSH配置文件(Linux/macOS路径为~/.ssh/config,Windows路径为C:\Users\你的用户名\.ssh\config)内容是否符合规范,正确配置示例如下:
Host gitlab.example.com HostName gitlab.example.com Port 443 User git IdentityFile ~/.ssh/你生成的SSH私钥文件名
配置保存后执行连通性测试命令:ssh -T git@gitlab.example.com
- 若返回权限错误,说明端口已经连通,问题出在密钥配置环节
- 若仍返回超时,说明443端口的SSH通道也不可用
3 密钥权限与正确性校验
- 本地私钥文件权限必须为600(Linux/macOS执行
chmod 600 ~/.ssh/你的私钥文件名),.ssh目录权限为700,权限过高会导致SSH直接拒绝使用该密钥 - 确认你上传到GitLab的是
.pub后缀的公钥全文,粘贴时没有多余的空格、换行符,也没有误传私钥内容
4 替代方案
如果确认SSH端口全被屏蔽,可以使用HTTPS凭证缓存方案达到和SSH相同的免密使用效果:
- 全局开启Git凭证缓存:
git config --global credential.helper store,首次克隆HTTPS仓库输入账号密码后会永久缓存,后续操作无需重复验证 - 已通过SSH克隆的本地仓库可以切换远程地址为HTTPS:
git remote set-url origin https://gitlab.example.com/你的命名空间/仓库名.git
内容的提问来源于stack exchange,提问作者lighdhftr3456
相关产品推荐
相关产品推荐

