You need to enable JavaScript to run this app. 如何通过跳板机使用Git SSH密钥访问GitLab服务
优惠活动
大模型
产品
解决方案
定价
更多

如何通过跳板机使用Git SSH密钥访问GitLab服务

问题根因

你当前配置的本地8888端口转发映射的是GitLab的HTTP服务端口,当你发送SSH协议请求到该端口时,接收方是HTTP服务无法识别SSH协议,因此返回400错误,触发SSH密钥交换识别失败报错。

解决方法

有两种常用配置方案,可根据使用习惯选择:

方案1:新增SSH端口单独转发

  • 先确认GitLab服务的SSH监听端口,默认是22,部分自定义部署场景会改为2222等其他端口,可联系GitLab管理员确认
  • 新增独立的SSH端口转发命令,和原有HTTP端口转发可同时运行:
    ssh -L 2222:<gitlab server ip>:<GitLab SSH端口> myname@<jump box ip>
    
  • 修改本地Git仓库的remote地址:
    git remote set-url origin ssh://git@127.0.0.1:2222/path/to/project.git
    

方案2:配置SSH代理跳转(无需手动维护端口转发)

该方案通过SSH内置的代理跳转能力自动走跳板机访问GitLab,无需每次手动执行端口转发命令:

  • 编辑本地~/.ssh/config文件,新增如下配置:
    # 跳板机配置
    Host jump-box
      HostName <jump box ip>
      User myname
      # 若跳板机使用密钥登录,可补充下一行配置
      # IdentityFile ~/.ssh/你的跳板机私钥文件路径
    
    # GitLab服务配置
    Host gitlab
      HostName <gitlab server ip>
      User git
      ProxyJump jump-box
      # 若GitLab SSH不是默认22端口,补充下一行配置
      # Port <GitLab SSH端口>
    
  • 修改本地Git仓库的remote地址:
    git remote set-url origin ssh://git@gitlab/path/to/project.git
    
验证配置

配置完成后执行SSH连通性测试:

ssh git@gitlab

若返回类似Welcome to GitLab, @你的用户名!的提示,说明配置生效,可正常执行git pull/push等操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 03:45:10