10

我正在尝试克隆远程 GitHub 企业存储库,并在将远程存储库的 URL 添加到我的 Jenkins 配置中的Git 插件后遇到以下错误:

hudson.plugins.git.GitException: Command "/usr/bin/git -c askpass=true fetch --tags --progress https://github.com/myUsername/myProject.git  refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: fatal: unable to access https://github.myOrg.com/myUsername/myProject.git/': Failed to connect to github.com port 443: Operation timed out    at... 

配置详细信息和我尝试过的事情:

  • Jenkins URL 默认为http://localhost:8080/ (收到警告:“请设置有效的主机名,而不是 localhost”)
  • 列出的所有依赖项都已为Git 插件安装
  • 我已添加 git 凭据以对我的组织的远程仓库进行授权
  • 我尝试将我的个人(非企业 git 帐户)凭据和 repo 添加到插件中,结果相同
  • 我已将“git 可执行文件的路径”设置为“git”和“/usr/bin/git”
  • 我可以通过命令行和浏览器连接到 Git

问题:

  • 我是否应该以某种方式为 Jenkins 使用/克隆我的远程仓库提供身份验证(ssh 密钥)?
  • 为什么 Jenkins 会因保留默认 URL 而发出警告?这是否意味着我需要将 Jenkins 放在本地机器以外的地方?

这几天我一直在解决这个问题,现在不确定我的问题是什么!请帮忙!!

4

3 回答 3

5
  1. 关于您的第一个问题 - 您需要将正确的 ssh 密钥与适当的存储库相关联。您可以在 /var/lib/jenkins/.ssh/config文件中执行此操作 - 详细说明在这里,这是支持多个 git repos 的更强大的解决方案,或者您可以将正确的 ssh 密钥添加到/.ssh 文件夹中。对于故障排除,请尝试在 jenkins 框内的 jenkins 用户下执行克隆 github repo。

  2. 关于你的第二个问题。这是我在 jenkins 中的网络设置,我没有警告消息: /etc/hosts: 127.0.0.1 localhost localhost.localdomain /etc/sysconfig/network: HOSTNAME=localhost.localdomain。您的主机名和 localhost 也应该在 jenkins 服务器中解析。

于 2015-08-25T00:58:03.200 回答
1

这有点奇怪,但如果您使用的是 gitlab.com,当您使用用于从 Jenkins 克隆项目的 gitlab 帐户登录网站 (gitlab.com) 时,错误似乎消失了。

于 2016-12-21T23:18:34.230 回答
1

问题已解决。按照此处的步骤获取新的密钥生成器。以以下身份登录终端:jenkins$ (sudo -i -u jenkins)。我最终能够将新生成的密钥添加到 /Users/Shared/Jenkins/.ssh/id_rsa (我试图重现我的其他 ssh 密钥是如何存储在我的 mac 上的 /Users/me/.ssh 中的)。

  • 我还必须限制上述 SSH 密钥文件夹的权限级别,以避免出错并使用 ssh -T.. 进行身份验证并添加到 git -> 帐户设置 -> ssh 密钥(特别是对于 jenkins)。

  • 之后,我进入 Jenkins /configure 并将我的新私钥位置添加到 CVS。在我的项目中,我必须添加凭据(带有私钥的 SSH 用户名),其中选择了“来自 Jenkins master ~/.ssh”单选按钮。

于 2015-08-31T23:45:10.277 回答