Tim*_*sen 10 git ssh jenkins bitbucket-server
我正在尝试配置Jenkins与Atlassian Stash合作.我已经(显然)得到了Git插件来成功ping Stash,因为Git插件页面不再有任何错误消息.我正在使用带有SSH的Git,并且我已使用正确的SSH密钥配置了我的Stash帐户.我还要提一下,我的办公室位于防火墙后面,因此是Stash的代理服务器.以下是Jenkins Git配置的屏幕截图:
在默认的10分钟超时后,控制台输出指示失败.以下是控制台输出的内容:
> C:\Program Files (x86)\Git\bin\git.exe fetch --tags --progress ssh://git@stash.someproxy.com:7999/project/myrepo.git
+refs/heads/*:refs/remotes/origin/*
ERROR: Timeout after 10 minutes
ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command "C:\Program Files (x86)\Git\bin\git.exe fetch --tags --progress ssh://git@stash.someproxy.com:7999/project/myrepo.git +refs/heads/*:refs/remotes/origin/*" returned status code -1:
stdout:
stderr:
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn
...
Run Code Online (Sandbox Code Playgroud)
当我直接从Windows bash运行以下Git命令时,尽管没有输出,它会很快完成:
$ time git fetch --tags --progress
ssh://git@stash.someproxy.com:7999/pcb_imst/
wigbotsimulator.git +refs/heads/*:refs/remotes/origin/*
real 0m5.530s
user 0m0.093s
sys 0m0.062s
Run Code Online (Sandbox Code Playgroud)
此外,当我从Jenkins中删除凭据并尝试构建时,我几乎立即得到了一个身份验证错误(Permission denied (publickey)).所以肯定看起来詹金斯可以击中 Stash,虽然它似乎无法完成一次获取.
我不知道如何解决这个问题.奇怪的是,Git在本地工作但在Jenkins使用它时不起作用.
在与 @VonC 进行广泛交谈并且没有出现明显错误后,我尝试让 Jenkins 通过 HTTPS 连接。最初我放弃了 HTTPS,因为它也不起作用。令我惊讶的是,HTTPS 构建工作正常,没有错误。
我正准备放弃 SSH,作为最后的手段,我决定使用以下私钥选项:
换句话说,我将我的私钥 ( ~/id_rsa) 直接剪切并粘贴到 Jenkins 中。令我惊讶的是,这竟然有效!我正在虚拟机上工作,我的用户文件夹位于F:驱动器上,显然 Jenkins 无法读取该驱动器。
所以我的问题的根本原因其实是SSH私钥文件的问题。但确切的错误是詹金斯无法读取该私钥。吸取的教训是确保 Jenkins 能够读取其运行所需的每个文件。 仅仅因为您的 Git 设置在本地工作并不意味着它也适用于 Jenkins。
| 归档时间: |
|
| 查看次数: |
536 次 |
| 最近记录: |