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本身不能。
我做到了。我创建了一个名为“jenkins”的用户。此用户具有存储库的权限(READ)。我在存储实例上创建了一个用户“jenkins”,并创建一个新的ssh密钥,将私钥复制到jenkins实例中。再次,克隆shell的工作,再次得到相同的错误。 – CBergau
您需要将Jenkins服务器上的Jenkins用户的SSH公钥添加到Stash中的Jenkins用户。作为管理员,请转到https:// stash/admin/users/view?name = jenkins并单击SSH Keys选项卡。 –
我删除了所有的密钥,去了jenkins实例,创建了SSH密钥,在公用密钥上添加了公钥给jenkins用户。重新启动jenkins。仍然得到相同的错误。 – CBergau