Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git克隆在jenkins shell脚本中不起作用_Git_Shell_Jenkins - Fatal编程技术网

git克隆在jenkins shell脚本中不起作用

git克隆在jenkins shell脚本中不起作用,git,shell,jenkins,Git,Shell,Jenkins,我正在设置jenkins构建管道,在其中一个构建步骤中,我正在尝试git克隆一个存储库 构建步骤(执行shell): git克隆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

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

构建步骤(执行shell):

git克隆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 clonegit@github.com:orgname/reponame.git
,这非常有效


你知道我在这里遗漏了什么吗

Github使用ssh公钥/私钥对进行身份验证。使用github时,需要提供公钥。你可能已经做过一次了,跟在后面

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

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

sudo su - jenkins
然后按照下面的步骤。对于Jenkins来说,最简单的方法是不使用密码创建密钥


我没有使用它,但a可能允许您使用密码保护的密钥对。

Jenkins以自己的用户身份运行。您是否测试过切换到Jenkins用户并进行克隆?切换系统中的用户或github帐户?切换到系统上的Jenkins用户并从命令行运行clone命令。您可能没有为该用户设置github ssh。要实现@Reck建议的功能,请以超级用户身份执行
su-jenkins
。您可能希望使用sudo su-jenkins: