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

代理环境下Jenkins无法克隆Git仓库问题求助

解决Jenkins代理环境下SSH克隆Git仓库失败的问题

我来帮你一步步排查这个问题,这种SSH方式克隆仓库在代理环境下踩坑很常见,咱们从几个关键方向入手:

1. 修正Jenkins的Git安装路径配置

你现在把Git安装路径设为C:\Program Files\Git\bin,这可能是第一个问题——Jenkins需要指向Git的根目录(也就是C:\Program Files\Git),而不是bin子目录。

看错误提示里的命令:C:\Program Files\Git\bin ls-remote ...,这里明显缺少了git.exe,因为Jenkins会自动在你配置的路径下拼接bin/git.exe,如果你填的是bin目录,它就会去找C:\Program Files\Git\bin\bin\git.exe,自然找不到。

修改步骤:

  • 进入Jenkins的「全局工具配置」
  • 找到Git安装项,把路径改成C:\Program Files\Git
  • 保存后,回到项目配置页面测试仓库连接

2. 给SSH协议配置代理

代理环境下默认只处理HTTP/HTTPS流量,而你用的git@hostname是SSH协议,默认不会走代理,所以需要单独给Git的SSH命令配置代理:

方法一:用Git全局配置

打开Git Bash,执行以下命令(替换成你的代理地址和端口):

git config --global core.sshCommand "ssh -o ProxyCommand='connect -H 你的代理地址:端口 %h %p'"

如果代理需要用户名密码认证,改成:

git config --global core.sshCommand "ssh -o ProxyCommand='connect -H 用户名:密码@你的代理地址:端口 %h %p'"

方法二:配置SSH config文件

在你的用户目录(比如C:\Users\你的用户名\.ssh)下创建或修改config文件,添加针对目标Git主机的代理规则:

Host hostname  # 替换成你的Git仓库主机名
  ProxyCommand connect -H 你的代理地址:端口 %h %p
  # 如果需要认证,添加下面两行
  # User 代理用户名
  # ProxyPassword 代理密码

3. 检查Jenkins运行用户的权限和凭据

Jenkins通常是以系统账户运行的,它可能无法读取你当前用户的Git配置或SSH密钥:

  • 如果你用的是SSH密钥认证,需要把密钥放到Jenkins运行用户的.ssh目录下(比如C:\Windows\System32\config\systemprofile\.ssh)
  • 更稳妥的方式是在Jenkins的「凭据」库中添加SSH私钥凭据,然后在项目的仓库配置里选择这个凭据,确保Jenkins能拿到正确的认证信息

4. 先在命令行测试克隆

先脱离Jenkins,在Jenkins服务器上用Jenkins运行的用户身份(可以用runas /user:Jenkins运行账户 cmd打开命令行),执行以下命令测试:

git ls-remote -h git@hostname:username/project.git HEAD

如果命令行执行失败,说明问题出在Git本身的代理或认证配置,先解决这个;如果命令行成功,再回头检查Jenkins的Git配置和凭据是否正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:28:24