在jenkins服务器上设置git私有存储库项目

时间:2015-02-03 07:15:07

标签: ruby-on-rails git github ssh jenkins

我正在尝试在jenkins服务器上设置git私有repo。我已经安装了git插件和github。当我在jenkins项目中设置repo url时,错误是

Failed to connect to repository : Command "git -c core.askpass=true 
ls-remote -h git@github.com:repo/project.git HEAD" returned 
status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedl

到目前为止我做了什么:

  1. 我的服务器用户和jenkin用户(两者都在同一台服务器上)不同。虽然在我看来这些并不相关。 jenkins用户被赋予所有信誉。

  2. 在var / lib / jenkins / .ssh下的服务器中(.ssh由我创建)我添加了ssh密钥。公钥被添加到github repo。

  3. 通过将用户切换到jenkins,我可以通过此ssh克隆项目。所以我认为没有任何公钥添加问题。

  4. 我用谷歌搜索了这个问题。有很多解决方案。我尝试了大部分。但仍然没有解决方案。可能我错过了一些东西。

    我的回购网址是这样的     git@github.com:回购/ project.git

2 个答案:

答案 0 :(得分:2)

如果HOME设置在/var/lib/jenkins/,那么我希望您成功完成所有步骤:)

然后你的情况可能会发生一件事。就像使用以下方式切换用户一样:

su jenkins 

此命令意味着您切换用户,但主目录将与root用户的主目录相同!

因此,您需要通过确认已切换的特定用户家来切换用户。要这样做,您需要遵循:

su -s /bin/bash jenkins

然后,您需要再次生成ssh公钥或只更新已知主机。这将有效。

Related Link

答案 1 :(得分:1)

这取决于Jenkins运行时设置的HOME:git将在$ H OME/.ssh下查找ssh(公共和私有)密钥。

只需添加一个带有回显$HOME的构建步骤,并确保您的.ssh位于该文件夹中。