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

如何配置GitLab CI SSH Runner以正确应用SSH ProxyJump跳转规则

根因说明

GitLab Runner的SSH executor默认使用内置的Go语言SSH客户端,不会主动加载系统全局/etc/ssh/ssh_config或用户目录下的.ssh/config配置,因此你预先配置的ProxyJump规则不会被识别,Runner会尝试直连serverB的22端口,最终触发连接拒绝报错。

解决方案

方案一:直接在Runner配置中声明跳转规则(推荐)

GitLab Runner的SSH配置原生支持代理跳转参数,直接修改/etc/gitlab-runner/config.toml的[runners.ssh]段即可:

[runners.ssh]                                                                 
  user = "idB"                                                   
  host = "serverB"                                                   
  identity_file = "/home/gitlab-runner/.ssh/id_ed25519"
  # 新增serverA代理跳转配置
  proxy_host = "serverA"
  proxy_user = "idA"
  # 如果serverA的认证密钥和serverB不同,替换为对应密钥路径
  proxy_identity_file = "/home/gitlab-runner/.ssh/id_ed25519"

修改完成后重启Runner服务生效:

gitlab-runner restart

方案二:配置gitlab-runner用户的SSH配置文件

如果你希望复用已有的SSH配置规则,需要将配置放到gitlab-runner用户的专属配置路径下:

  1. 切换到gitlab-runner用户家目录,创建SSH配置文件:
su - gitlab-runner
mkdir -p ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/config
  1. 写入你现有的SSH规则:
Host serverA
  User idA
Host serverB
  User idB
  ProxyJump serverA
  1. 调整配置文件权限:
chmod 600 ~/.ssh/config
  1. 验证连通性,确保gitlab-runner用户可以正常连接serverB:
ssh serverB
  1. 重启Runner服务生效。

验证

配置完成后重新运行CI/CD作业即可正常通过跳转连接到serverB执行任务。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:06:04