2013-10-16 56 views
1

我有2个虚拟机(包括Ubuntu 12),SRV-ATLASSIAN(其中安装了Stash)和SRV-CI(安装了Jenkins)。Jenkins无法使用SSH连接到GIT,但shell运行

我想使用Git的插件詹金斯,所以我安装了它,创建了SRV-Atlassian的一个SSH密钥并复制私钥(id_rsa)到/var/lib/jenkins/.ssh

我SSH-添加密钥

,当我在

sudo su jenkins 
cd /var/lib/jenkins/.ssh 
git clone ssh://[email protected]:7999/test/test.git 

外壳上键入,但它很好地工作。

当我进入这个URI到詹金斯的GIT插件,我收到以下错误信息:

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 

我GOOGLE当然关于这个问题,但我不明白该怎么做使其工作。奇怪的是,我可以从shell作为用户“JENKINS”进行克隆,但Jenkins本身不能。

回答

0

您需要让Jenkins用户访问您的Stash回购站。在Stash中创建一个用户,并将Jenkins用户的SSH公钥添加到Stash用户。然后为您的Stash项目或个人回购设置权限,以便Jenkins用户可以访问您需要的回购站。详情请参阅the Stash docs

+0

我做到了。我创建了一个名为“jenkins”的用户。此用户具有存储库的权限(READ)。我在存储实例上创建了一个用户“jenkins”,并创建一个新的ssh密钥,将私钥复制到jenkins实例中。再次,克隆shell的工作,再次得到相同的错误。 – CBergau

+0

您需要将Jenkins服务器上的Jenkins用户的SSH公钥添加到Stash中的Jenkins用户。作为管理员,请转到https:// stash/admin/users/view?name = jenkins并单击SSH Keys选项卡。 –

+0

我删除了所有的密钥,去了jenkins实例,创建了SSH密钥,在公用密钥上添加了公钥给jenkins用户。重新启动jenkins。仍然得到相同的错误。 – CBergau