我正在尝试让Jenkins运行并使用GitHub托管的存储库(使用Jenkins Git插件)。存储库有多个git子模块,所以我不确定我是否想尝试管理多个部署密钥。
我个人的GitHub用户帐户是我希望使用Jenkins的每个项目的协作者,所以我在/var/lib/jenkins/.ssh
内生成了一个SSH密钥,并将其添加到我的个人GitHub帐户。
但是,当我尝试将存储库URL添加到我的Jenkins项目配置时,我得到:
Failed to connect to repository : Command "git ls-remote -h git@github.com:***/***.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
同样,当我安排构建时,我得到:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
我也尝试按照here概述设置SSH配置文件,但无济于事。
任何人都可以光明吗?感谢
修改
我应该补充一点,我正在运行CentOS 5.8
答案 0 :(得分:62)
看起来jenkins尝试连接的github.com
主机未列在Jenkins用户的$HOME/.ssh/known_hosts
下。 Jenkins作为用户jenkins
在大多数发行版上运行,因此有自己的.ssh
目录来存储公钥列表和known_hosts
。
我能想到解决这个问题的最简单的解决方案是:
# Login as the jenkins user and specify shell explicity,
# since the default shell is /bin/false for most
# jenkins installations.
sudo su jenkins -s /bin/bash
cd SOME_TMP_DIR
# git clone YOUR_GITHUB_URL
# Allow adding the SSH host key to your known_hosts
# Exit from su
exit
答案 1 :(得分:6)
您是否曾尝试以jenkins用户身份登录?
试试这个:
sudo -i -u jenkins #For RedHat you might have to do 'su' instead.
git clone git@github.com:your/repo.git
如果主机没有被添加或授权,通常会看到失败(因此我总是手动登录为hudson / jenkins,以便第一次连接到github / bitbucket)但是你所包含的那个链接可能会修复它。
如果上述方法无效,请尝试重新输入密钥。确保它的pub键(即id_rsa.pub)。也许你错过了一些角色?
答案 2 :(得分:4)
答案 3 :(得分:1)
如果你有 /Jenkins/.ssh / 中的配置和私钥文件需要 chown (更改所有者)这两个文件,这对我有用然后重新启动 jenkins,以便jenkins实例读取这两个文件。