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

GitLab问题:SSH连接正常但无法通过SSH克隆仓库

排查SSH克隆GitLab仓库失败的问题

根据你描述的情况,SSH能正常连接服务器但克隆仓库时报仓库不存在,HTTP克隆却正常,咱们可以从这几个方向逐一排查:

1. 先确认SSH克隆地址的准确性

你当前使用的myusername@address:git/name.git路径大概率有问题。GitLab的SSH仓库地址规则是:

  • 如果项目在用户个人空间下:格式应为myusername@address:myusername/name.git
  • 如果项目在组空间下:格式应为myusername@address:groupname/name.git

你写的git/name.git不符合默认路径逻辑,除非你特意创建了名为git的用户或组。建议直接登录GitLab网页,进入目标项目主页,点击「Clone」按钮复制官方给出的SSH地址,对比你当前使用的路径是否一致。

2. 验证用户的SSH权限与密钥状态

虽然你给用户设置了维护者权限和管理员权限,但仍需确认:

  • 登录GitLab进入该用户的个人设置→SSH密钥页面,检查你添加的密钥是否处于活跃状态,有没有被禁用或过期。
  • 再去项目的「成员」页面,确认该用户的维护者权限是否真的生效,有没有被误移除。

3. 检查GitLab的SSH服务配置(非默认git账户场景)

因为你没有用默认的git账户,需要确认GitLab的SSH服务是否允许普通用户连接:

  • 登录GitLab服务器,打开/etc/gitlab/gitlab.rb配置文件,检查gitlab_rails['gitlab_shell_ssh_port']是否匹配你使用的SSH端口(默认是22,若改了端口,克隆时要加-p 端口号参数);同时确认有没有限制SSH连接用户的特殊配置。
  • 修改配置后记得重启GitLab服务:sudo gitlab-ctl restart,很多配置变更需要重启才能生效。

4. Windows环境下的SSH配置排查

你在Windows机器上操作,可能存在专属的配置问题:

  • 检查Windows的SSH配置文件C:\Users\<你的Windows用户名>\.ssh\config,看看有没有为GitLab服务器设置错误的参数(比如指定了错误的用户或路径)。
  • 执行ssh -v myusername@address命令查看SSH连接的详细日志,从日志里可以定位是连接阶段还是仓库访问阶段出了问题,比如有没有权限不足的提示。

5. 确认仓库的实际存储路径

虽然HTTP能克隆,但可以登录GitLab服务器,检查仓库的实际存储情况:
GitLab默认仓库存储路径是/var/opt/gitlab/git-data/repositories/,对应项目的完整路径应该是/var/opt/gitlab/git-data/repositories/<命名空间>/<项目名>.git,你可以检查这个路径是否存在,以及myusername对该目录有没有读写权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:49:08