我正在设置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
,这非常有效。
知道我在这里可能缺少的东西。
答案 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可能允许您使用受密码保护的密钥对。