Jenkins拉取公开GitHub仓库返回错误码128问题求助
问题根因
从构建日志可以确定,本次128错误和SSH/身份认证完全无关,错误本质是Jenkins所在Mint虚拟机的旧版本Git依赖的GnuTLS库,和GitHub的TLS 1.3加密规则握手失败导致的。
排查解决步骤
- 第一步:验证系统级Git访问是否正常
切换到Jenkins运行用户,在虚拟机终端直接执行克隆命令:
如果也返回同样的GnuTLS报错,即可确认是系统层面的问题,和Jenkins本身的流水线配置无关。git clone https://github.com/secteam911/BasicAPI.git - 第二步:修复TLS兼容问题,二选一即可
- 临时降级Git的TLS版本要求:
切换到Jenkins运行用户后执行:
如需全局生效所有用户,可执行系统级配置:git config --global http.sslVersion tlsv1.2sudo git config --system http.sslVersion tlsv1.2 - 升级旧版本组件:
你当前使用的Git 2.25.1版本较老,对TLS1.3支持不完善,直接更新相关依赖即可:sudo apt update && sudo apt install --only-upgrade git gnutls-bin
- 临时降级Git的TLS版本要求:
- 第三步:修正Jenkins的Git路径配置
你提到已将Git添加到/usr/local/bin路径,但日志中Jenkins实际调用的是/usr/bin/git,需要进入Jenkins控制台→全局工具配置→Git配置项,将「Path to Git executable」修改为你的实际Git路径/usr/local/bin/git,保存后重启Jenkins服务生效。 - 第四步:修正Jenkinsfile潜在问题
你当前的Jenkinsfile中sh 'python3 app.py runserver'是启动常驻后台服务的命令,会导致流水线一直处于运行状态不会结束,测试阶段建议替换为单元测试、静态检查等非常驻命令,避免后续构建超时。
内容的提问来源于stack exchange,提问作者Sec Team
相关产品推荐
相关产品推荐

