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

推送新建分支时遇Connection to gitlab closed by remote错误,求解决方案

解决GitLab推送时「Connection to gitlab closed by remote host」的SSH Key相关问题

这种情况确实大概率和SSH Key有关——毕竟其他仓库能正常操作,说明网络层面基本没问题,咱们一步步排查修复:

  • 先确认本地SSH Key是否关联到GitLab账号

    1. 打开终端,查看当前本地SSH公钥内容:
      cat ~/.ssh/id_rsa.pub
      
      如果用的是更安全的Ed25519密钥,就执行:
      cat ~/.ssh/id_ed25519.pub
      
    2. 登录GitLab后台,进入「个人设置」→「SSH Keys」,检查列表里有没有和终端输出完全一致的公钥。如果没有,直接复制本地公钥内容粘贴进去,给Key加个易识别的备注(比如当前设备名称),然后保存。
  • 测试SSH连接到GitLab的连通性
    在终端执行测试命令:

    ssh -T git@gitlab.com
    

    如果是自托管的私有GitLab,把gitlab.com换成你的私有GitLab域名。如果输出「Welcome to GitLab, @你的用户名!」,说明SSH连接正常;如果还是报错,继续往下排查。

  • 排查SSH配置与文件权限问题

    1. SSH对文件权限要求很严格,先修正.ssh目录和密钥文件的权限:
      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/id_rsa  # 替换成你的密钥文件名,比如id_ed25519
      
    2. 如果同时使用多个平台的SSH Key(比如GitHub+GitLab),需要配置~/.ssh/config文件指定对应仓库的密钥:
      编辑配置文件:
      vim ~/.ssh/config
      
      添加以下内容(按需替换密钥路径):
      Host gitlab.com
        HostName gitlab.com
        User git
        IdentityFile ~/.ssh/id_rsa_gitlab
      
      保存后再重新测试SSH连接。
  • 重新生成SSH Key(极端情况)
    如果上面的步骤都无效,试着生成全新的SSH Key:

    ssh-keygen -t ed25519 -C "你的注册邮箱@xxx.com"
    

    一路回车使用默认设置即可,然后把新生成的公钥重新添加到GitLab账号,再测试推送。

  • 检查Git客户端的SSH配置
    针对SourceTree和Git Desktop这类GUI客户端:

    1. SourceTree:进入「设置」→「Git」→「SSH客户端」,选择「OpenSSH」(而非内置客户端),确保使用系统默认的SSH配置。
    2. Git Desktop:进入「设置」→「Git」,检查「SSH Executable」是否选择「系统默认」。
    3. 可以尝试清除SSH缓存:
      ssh-add -D
      ssh-add ~/.ssh/你的密钥文件名
      
      之后重启客户端再尝试推送。

如果试过这些还是不行,可以再检查下目标GitLab仓库的权限(比如你是否拥有推送权限),不过结合你其他仓库正常的情况,大概率还是SSH Key相关的问题。

内容的提问来源于stack exchange,提问作者محمد خير الخلق

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:20:07