git clone在jenkins shell脚本中不起作用

时间:2015-09-15 17:37:36

标签: git shell jenkins

我正在设置jenkins构建管道,在其中一个构建步骤中,我正在尝试克隆存储库。

构建步骤(执行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,这非常有效。

知道我在这里可能缺少的东西。

1 个答案:

答案 0 :(得分:2)

Github使用ssh公钥/私钥对进行身份验证。使用github时,需要提供公钥。您可能已经按照these instructions执行了此操作。

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

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

执行此操作
sudo su - jenkins

然后按照keygeneration steps provided by github进行操作。对于Jenkins使用密钥,最简单的方法是创建没有密码的密钥。

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