【问题标题】:git clone not working in jenkins shell scriptgit clone 在 jenkins shell 脚本中不起作用
【发布时间】:2015-12-12 01:56:28
【问题描述】:

我正在设置 jenkins 构建管道,并且在其中一个构建步骤中,我正在尝试 git clone 一个存储库。

构建步骤(执行shell):

git clone git@github.com:orgname/reponame.git

在这一步失败了

10:14:01 Permission denied (publickey).
10:14:01 fatal: The remote end hung up unexpectedly
10:14:01 Build step 'Execute shell' marked build as failure
10:14:01 Finished: FAILURE

但是,在设置 repo 时,我已将 scm 设置为 git 并将存储库 url 指定为 git clone git@github.com:orgname/reponame.git,这非常有效。

知道我在这里可能缺少什么。

【问题讨论】:

  • Jenkins 以自己的用户身份运行。您是否测试过切换到 Jenkins 用户并进行克隆?
  • 切换系统用户还是github账号?
  • 切换到系统上的jenkins用户,自己从命令行运行clone命令。你 prolly 没有为那个用户设置 github ssh 的东西。
  • 为了实现@Reck 的建议,以超级用户身份执行su - jenkins

标签: git shell jenkins


【解决方案1】:

Github 使用 ssh 公钥/私钥对进行身份验证。当你使用 github 时,你需要提供你的公钥。在these instructions 之后,您可能已经这样做了一次。

当您生成密钥对时,默认行为是只有生成密钥对的用户才能访问它。这意味着如果您将其生成为 upr,则用户 jenkins 无法访问连接到 github 所需的密钥对。

要解决此问题,请切换到 jenkins 用户。如果你使用的是 unix,你可以通过

sudo su - jenkins

然后关注keygeneration steps provided by github。要让 Jenkins 使用密钥,最简单的方法是在没有密码的情况下创建它。

我没用过,但Jenkins plugin like this 可能允许您使用受密码保护的密钥对。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 2013-12-03
  • 2015-01-07
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多