Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
Jenkins无法使用SSH连接到GIT,但shell可以工作_Git_Ssh_Jenkins - Fatal编程技术网

Jenkins无法使用SSH连接到GIT,但shell可以工作

Jenkins无法使用SSH连接到GIT,但shell可以工作,git,ssh,jenkins,Git,Ssh,Jenkins,我有两个虚拟机,一个是Ubuntu 12,一个是安装了Stash的SRV-ATLASSIAN,另一个是安装了Jenkins的SRV-CI 我想为Jenkins使用Git插件,所以我安装了它,在SRV-ATLASSIAN上创建了一个SSH密钥,并将私钥id_rsa复制到/var/lib/Jenkins/.SSH 我需要添加密钥 当我打字的时候 sudo su jenkins cd /var/lib/jenkins/.ssh git clone ssh://git@10.10.10.21:7999/

我有两个虚拟机,一个是Ubuntu 12,一个是安装了Stash的SRV-ATLASSIAN,另一个是安装了Jenkins的SRV-CI

我想为Jenkins使用Git插件,所以我安装了它,在SRV-ATLASSIAN上创建了一个SSH密钥,并将私钥id_rsa复制到/var/lib/Jenkins/.SSH

我需要添加密钥

当我打字的时候

sudo su jenkins
cd /var/lib/jenkins/.ssh
git clone ssh://git@10.10.10.21:7999/test/test.git
在外壳上,它确实工作得很好

当我在jenkins的GIT插件中输入此URI时,会收到以下错误消息:

Using strategy: Default
Fetching changes from 1 remote Git repository
Fetching upstream changes from origin
ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Command "git fetch -t origin     +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我当然在谷歌上搜索过这个问题,但我不知道该怎么做才能让它工作。奇怪的是,我可以从shell中克隆用户JENKINS,但JENKINS本身无法…

您需要让JENKINS用户访问您的隐藏回购。在Stash中创建一个用户,并将Jenkins用户的SSH公钥添加到Stash用户。然后为您的隐藏项目或单个回购设置权限,以便Jenkins用户可以访问您需要的回购。有关详细信息,请参阅

我做到了。我创建了一个名为jenkins的用户。此用户具有读取存储库的权限。我在stash实例上创建了一个用户jenkins,并创建了一个新的ssh密钥,将私钥复制到jenkins实例。同样,在shell上进行克隆也会发生同样的错误。您需要将Jenkins服务器上的Jenkins用户的SSH公钥添加到隐藏中的Jenkins用户。作为管理员,转到并单击SSH密钥选项卡。我删除了所有密钥,转到jenkins实例,创建了SSH密钥,向jenkins用户添加了公钥。詹金斯说。仍然得到相同的错误。也许这有助于找到错误,当我输入sudo su jenkins并希望ssh添加-l时,输出是:代理没有身份。。为了能够从shell中克隆,我必须始终评估ssh代理。