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

Windows11下GitLab SSH克隆权限拒绝及指纹不匹配问题求助

解决GitLab SSH克隆权限拒绝及指纹不匹配问题

1. 核对指纹格式差异

Windows OpenSSH默认显示MD5格式的指纹,而GitLab后台展示的通常是SHA256格式,这是你看到指纹不匹配的常见原因。用以下命令生成SHA256格式的指纹,再和GitLab上的对比:

ssh-keygen -lf ~/.ssh/id_rsa.pub -E sha256

(如果使用ed25519密钥,将id_rsa.pub替换为id_ed25519.pub)

2. 强制指定密钥文件连接

Windows可能默认加载了其他SSH密钥(如系统自带、其他工具生成的),导致GitLab无法匹配你上传的密钥。创建/修改~/.ssh/config文件,添加以下配置:

Host <你的GitLab服务器地址>
  HostName <你的GitLab服务器地址>
  User git
  IdentityFile ~/.ssh/id_rsa  # 替换为你实际的私钥文件名
  IdentitiesOnly yes

保存后用ssh -T git@<你的GitLab服务器地址>测试连接,确保强制使用指定密钥。

3. 严格检查文件权限

Windows下SSH对密钥文件权限要求苛刻,权限过宽会导致连接被拒绝:

  • 右键.ssh文件夹 → 属性 → 安全 → 高级 → 禁用继承 → 删除所有非当前用户的权限条目,仅保留当前Windows用户的完全控制权限。
  • 对私钥文件(如id_rsa)执行同样操作,确保只有当前用户能读取,其他用户无任何权限。

4. 重新确认GitLab公钥配置

  • 打开本地公钥文件(id_rsa.pub),复制全部内容,确保不遗漏开头的ssh-rsa(或ssh-ed25519)和结尾注释,也不要多添空格或换行。
  • 登录GitLab,进入个人设置 → SSH密钥,删除旧密钥,粘贴新公钥内容,保存后等待1-2分钟再测试连接。

5. 排查OpenSSH服务状态

打开Windows服务管理器,找到OpenSSH Authentication Agent服务,确保它处于运行状态且启动类型设为自动。若未运行,启动后重新测试连接。


内容的提问来源于stack exchange,提问作者Yap Wei Cheng

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:55