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

Jenkins连接Git仓库报错:远程端意外挂断问题求助

解决Jenkins连接局域网Git仓库时的「远程端意外挂断」问题

我之前也碰到过几乎一模一样的场景,结合你的环境配置(Jenkins 2.46.3、Java 1.7.51、CentOS 6.6),给你梳理几个最靠谱的排查和解决步骤:

1. 先确认Jenkins运行用户的SSH权限

Jenkins默认是用jenkins系统用户运行的,和你本地操作的个人账号完全是两个不同的环境,这大概率是问题根源:

  • 切换到Jenkins用户:su - jenkins(如果提示无法切换,试试su jenkins,CentOS 6里可能没给jenkins用户分配登录shell)
  • 手动尝试克隆仓库:git clone test@10.0.0.1:/path/to/repo
    • 如果这里也报错,说明是jenkins用户的SSH凭据没配置对:
      1. 先在jenkins用户下创建.ssh目录:mkdir ~/.ssh && chmod 700 ~/.ssh
      2. 把你本地能正常克隆的私钥(比如id_rsa)复制到~jenkins/.ssh/,然后修改权限:chmod 600 ~/.ssh/id_rsa
      3. 还要把Git服务器添加到已知主机:ssh-keyscan 10.0.0.1 >> ~/.ssh/known_hosts,再修正权限:chmod 644 ~/.ssh/known_hosts

2. 检查Git插件与Jenkins版本的兼容性

你的Jenkins版本偏老,高版本的Git插件可能和它不兼容:

  • 进入Jenkins的「插件管理」,找到Git插件查看当前版本,建议降级到和2.46.3匹配的版本(比如Git插件3.9.0,这个版本和Jenkins 2.46.x适配性很好)
  • 同时检查服务器上的Git客户端版本:git --version,如果版本低于2.10,也容易出连接问题,CentOS 6可以通过ius源用yum升级到2.x版本

3. 核对Jenkins凭据配置细节

有时候看起来配置了相同的凭据,但实际有隐藏问题:

  • 一定要选「SSH Username with private key」类型的凭据,而不是「Username and password」(你本地用的是SSH克隆,不是HTTPS)
  • 私钥选「Enter directly」,把你本地的私钥内容完整粘贴进去(注意不要多空格或换行)
  • 别只依赖「测试连接」按钮,最好建个简单的自由风格项目,配置好Git仓库后手动触发构建,看控制台日志里的详细错误信息(比弹窗提示有用得多)

4. 排查网络与SELinux限制

虽然本地能克隆,但Jenkins用户可能受防火墙或SELinux限制:

  • 检查SELinux状态:getenforce,如果是Enforcing,先临时关闭试试:setenforce 0,如果能成功连接,就需要给Jenkins添加SELinux规则,或者把SELinux设为Permissive(不建议完全关闭)
  • 测试端口连通性:telnet 10.0.0.1 22,如果不通,检查防火墙规则,确保允许Jenkins服务器访问Git服务器的22端口

5. 尝试升级Java版本

你的Java 1.7.51虽然能跑Jenkins 2.46.3,但部分Git插件功能可能依赖Java 8:

  • 用yum安装openjdk-8:yum install java-1.8.0-openjdk
  • 编辑Jenkins启动脚本(比如/etc/init.d/jenkins),把JAVA_HOME改成Java 8的路径,比如JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
  • 重启Jenkins:service jenkins restart

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:32