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

GitLab配置SSH密钥后无法克隆仓库,执行命令无响应如何解决?

解决SSH克隆GitLab仓库无响应的问题

1. 先测试基础SSH连通性

直接执行ssh -T git@xxx.com,如果这条命令也卡住,说明问题出在SSH网络连接或配置,而非Git本身:

  • 若卡住无响应:先ping xxx.com验证DNS解析和网络可达性;确认防火墙/公司网络是否开放SSH默认端口22,若GitLab使用非默认端口(如2222),需指定端口测试:ssh -p 2222 git@xxx.com,克隆时也要对应修改命令为git clone ssh://git@xxx.com:2222/test-environment/test.git

2. 检查SSH配置文件

查看~/.ssh/config(Windows用户为C:\Users\<你的用户名>\.ssh\config),确认针对xxx.com的配置条目是否正确,示例正确配置:

Host xxx.com
  HostName xxx.com
  User git
  IdentityFile ~/.ssh/你的私钥文件名
  Port 22

若存在错误配置(如端口写错、私钥路径错误),会导致连接卡住。

3. 启用SSH verbose日志定位问题

执行ssh -vvv git@xxx.com,通过详细日志排查卡环节点:

  • 若日志停在debug1: Connecting to xxx.com [x.x.x.x] port 22:说明网络连接超时,检查防火墙规则、路由或网络环境;
  • 若停在密钥验证阶段:可能是公钥未正确添加到GitLab,或私钥权限不符合要求。

4. 验证GitLab公钥配置

登录GitLab账户,进入「个人设置」→「SSH密钥」,确认:

  • 已添加对应本地公钥(~/.ssh/你的公钥文件名.pub内容);
  • 公钥内容完整,无多余空格、换行;
  • 公钥未过期。

5. 修正本地私钥权限(Linux/macOS)

SSH对私钥权限要求严格,必须设置为600,同时.ssh文件夹权限为700:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/你的私钥文件名

6. 排除代理/VPN干扰

若当前使用代理或VPN,先关闭后重试,部分代理会拦截SSH连接导致无响应。

7. 查看Git调用SSH的详细日志

执行以下命令开启Git的SSH调试日志,再重新克隆:

git config --global core.sshCommand "ssh -vvv"
git clone git@xxx.com:test-environment/test.git

从输出日志可明确Git与SSH交互时的具体问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:58:25