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

Jenkins流水线克隆代码库时遇Exec Format Error问题求助

解决Jenkins流水线Git仓库连接失败的问题

核心问题定位

报错指向Git生成的临时SSH脚本无法被正确执行(Exec format error),同时存在Shell执行器识别异常,即使全局配置了/bin/bash仍未生效。

修复方案

1. 强制Git使用指定Shell执行SSH命令

Git生成的临时脚本可能缺少正确的执行器声明,直接通过环境变量指定Git使用bash执行SSH:

  • 在Jenkins节点的系统环境变量中添加:GIT_SSH_COMMAND="bash -c '/usr/bin/ssh'"
  • 或在流水线的环境块中配置:
    environment {
        GIT_SSH_COMMAND = 'bash -c "/usr/bin/ssh"'
    }
    

2. 校验节点级Shell配置

全局配置可能被节点本地配置覆盖,需确认节点Shell设置:

  • 进入「管理Jenkins」→「管理节点」→ 选择运行流水线的节点 →「配置」
  • 检查「Shell executable」是否明确设置为/bin/bash,而非默认的sh
  • 若使用Docker代理,确保镜像内置bash,并在Dockerfile中添加SHELL ["/bin/bash", "-c"]

3. 修复临时脚本权限与格式

临时脚本可能存在权限或换行符问题:

  • 确保Jenkins运行用户对/tmp目录拥有读写执行权限
  • 检查脚本是否带有DOS换行符(CRLF),可通过dos2unix工具转换格式(若能定位到临时脚本文件)
  • 在流水线前置步骤中全局配置Git的SSH命令:
    stage('前置配置') {
        steps {
            sh 'git config --global core.sshCommand "bash -c /usr/bin/ssh"'
        }
    }
    

4. 升级Git客户端版本

旧版Git存在临时脚本生成的兼容性bug,建议升级到2.30以上稳定版本:

  • 执行git --version查看当前版本,通过包管理器(如apt、yum)完成升级

原报错信息:
连接仓库失败,执行命令/usr/bin/git ls-remote -h -- git@git.assembla.com:untold-universe.backend.git HEAD返回状态码128,stderr显示:
fatal: cannot exec '/tmp/jenkins-gitclient-ssh12333381895369065263.sh-copy': Exec format error,fatal: unable to fork
克隆公开仓库时可获取Jenkinsfile,但检出代码时报错:no hup cant run 'sh' exec format error

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:34:52