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

GitLab Runner SSH执行器准备环境失败(Process exited with status 1)问题求助

GitLab Runner SSH执行器准备环境失败(Process exited with status 1)问题求助

根据你描述的情况,这个问题大概率和SSH目标主机的shell profile文件加载异常有关——虽然错误提示指向.bash_logout,但实际问题往往出在其他登录/交互shell的配置文件上。结合你提到的同配置其他runner正常的情况,我给你几个针对性的排查和解决方向:

1. 手动模拟Runner的SSH执行流程,定位具体错误

首先在你的GitLab Runner主机上,切换到gitlab-runner用户,手动执行和Runner一致的SSH命令,看看能不能复现错误:

su - gitlab-runner
ssh -i /data/gitlab/.ssh/id_ed25519 -p 22 gitlab@server.dns.name 'echo "Test successful"'

如果这个命令执行失败或有异常输出(比如报错、非预期提示),那就是目标主机的SSH登录或shell配置有问题。如果执行正常,再尝试模拟Runner的环境加载流程:

ssh -i /data/gitlab/.ssh/id_ed25519 -p 22 gitlab@server.dns.name 'source ~/.profile && source ~/.bashrc && echo "Profile loaded"'

这一步能帮你定位是不是profile文件里的错误命令导致了退出。

2. 检查目标主机gitlab用户的shell配置文件

重点检查目标主机(server.dns.name)上gitlab用户的以下文件:

  • ~/.bashrc
  • ~/.profile
  • ~/.bash_profile
  • /etc/profile(系统级配置)

需要排查这些文件里是否存在:

  • 带有set -e的命令(会导致任意命令失败就直接退出)
  • 尝试切换到不存在的目录(比如cd /some/nonexist/path)
  • 执行不存在的脚本或命令(比如source /opt/xxx/script.sh但文件不存在)
  • 输出重定向到/dev/null但实际命令执行失败的情况(虽然看不到错误,但命令返回非0状态会导致环境准备失败)

3. 验证SSH相关权限配置

虽然你说其他runner正常,但还是要确认当前环境的密钥权限是否符合要求:

  • Runner主机上的/data/gitlab/.ssh/id_ed25519权限必须是600,所属用户是gitlab-runner:
    chmod 600 /data/gitlab/.ssh/id_ed25519
    chown gitlab-runner:gitlab-runner /data/gitlab/.ssh/id_ed25519
    
  • 目标主机上gitlab用户的~/.ssh目录权限是700,authorized_keys文件权限是600:
    chmod 700 ~gitlab/.ssh
    chmod 600 ~gitlab/.ssh/authorized_keys
    

4. 开启Runner的Debug日志,获取更详细信息

修改你的config.toml文件,添加日志级别配置:

concurrent = 1
check_interval = 0
shutdown_timeout = 0
log_level = "debug"  # 新增这一行

[session_server]
session_timeout = 1800

[[runners]]
# 你的runner原有配置...

然后重启GitLab Runner服务:

gitlab-runner restart

再次触发失败的Job,查看Runner日志(通常在/var/log/gitlab-runner.log),里面会有更具体的错误细节,比如到底是哪一步的命令返回了非0状态。

5. 检查目标主机的SSH服务配置

查看目标主机的/etc/ssh/sshd_config,确认是否存在限制gitlab用户的配置,比如:

  • ForceCommand:强制执行某个命令,可能干扰Runner的环境准备
  • AllowUsers/DenyUsers:是否限制了gitlab用户的SSH登录
  • PermitUserEnvironment:是否禁用了用户环境变量加载

如果有这些配置,尝试临时注释掉并重启sshd服务,再测试Job是否正常。

备注:内容来源于stack exchange,提问作者sflyer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:38:14