EC2上Jenkins配置公共GitHub仓库报git ls-remote错误求助
问题描述
在EC2实例上安装Jenkins服务后,配置公共GitHub仓库时抛出如下错误:
Failed to connect to repository : Error performing git command: git ls-remote -h public github url HEAD
已尝试重装Git插件但问题未解决,同时已配置访问凭证(公共Git仓库理论上无需凭证即可访问)。
可行解决方案
- 校验宿主机Git安装与配置
Jenkins Git插件依赖EC2实例宿主机的原生Git程序执行命令,仅安装插件无法独立完成Git操作。登录EC2实例执行git --version检查是否已安装Git:- 若未安装,根据操作系统执行对应安装命令:
- Amazon Linux/CentOS/RHEL:
sudo yum install git -y - Ubuntu/Debian:
sudo apt update && sudo apt install git -y
- Amazon Linux/CentOS/RHEL:
- 安装完成后执行
which git获取Git可执行文件的绝对路径(通常为/usr/bin/git),进入Jenkins后台「Manage Jenkins > Global Tool Configuration」页面,找到Git配置项,取消自动安装选项,将Path to Git executable填写为上述获取到的绝对路径,保存配置后重试。
- 若未安装,根据操作系统执行对应安装命令:
- 排查EC2到GitHub的网络连通性
登录EC2实例,手动执行和Jenkins报错一致的命令git ls-remote -h <你的公共GitHub仓库HTTPS地址> HEAD,观察命令行执行结果:- 如果命令行执行同样失败,先检查EC2安全组、网络ACL是否放通到GitHub的443端口出站流量;私有子网内的EC2需要确认已配置可用的NAT网关/公网出口,VPC策略未拦截GitHub域名访问;若实例使用代理上网,需要在Jenkins的Git配置中添加对应代理参数。
- 如果命令行执行成功,说明网络本身无问题,继续排查Jenkins侧配置。
- 校验Jenkins运行用户权限
Jenkins默认以jenkins用户运行服务,该用户权限不足会导致Git命令执行失败。执行sudo su - jenkins -s /bin/bash切换到Jenkins运行用户,再次执行上述git ls-remote测试命令:- 若切换用户后命令执行失败,检查该用户的环境变量配置、对Jenkins工作目录的读写权限,不要使用root用户运行Jenkins服务避免权限冲突。
- 修正仓库URL与凭证配置
公共GitHub仓库无需配置额外凭证,仓库地址直接使用标准HTTPS格式https://github.com/<仓库所有者>/<仓库名>.git即可,凭证下拉选项直接选择「无」,不要在URL中拼接用户名、Token等参数,错误的凭证配置反而会触发鉴权失败。 - 排查Git版本兼容性
若宿主机安装的Git版本低于2.3.0,和新版Jenkins Git插件存在兼容问题,执行git --version确认版本后,卸载原有低版本Git,添加Git官方软件源安装2.3.0以上版本即可。
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐


