首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Jenkins for Git中管理SSH密钥

在Jenkins for Git中管理SSH密钥
EN

Stack Overflow用户
提问于 2013-03-10 03:11:01
回答 4查看 141.1K关注 0票数 55

我正在尝试让Jenkins启动并运行GitHub托管的存储库(使用Jenkins Git插件)。存储库有多个git子模块,所以我不确定是否要尝试管理多个部署密钥。

我的个人GitHub用户帐户是我希望与Jenkins合作的每个项目的合作者,因此我在/var/lib/jenkins/.ssh中生成了一个SSH密钥,并将其添加到我的个人GitHub帐户中。

但是,当我尝试将存储库URL添加到我的Jenkins项目配置中时,我得到:

代码语言:javascript
复制
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

同样,当我计划一个构建时,我会得到:

代码语言:javascript
复制
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

我还尝试按照概述的here设置SSH配置文件,但无济于事。

有没有人能提供一点线索?谢谢

编辑

我应该补充一点,我运行的是CentOS 5.8

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-03-10 03:27:43

看起来jenkins试图连接的github.com主机没有列在Jenkins user's $HOME/.ssh/known_hosts下面。Jenkins以jenkins用户的身份在大多数发行版上运行,因此有自己的.ssh目录来存储公钥和known_hosts的列表。

我能想到的解决这个问题的最简单的解决方案是:

代码语言:javascript
复制
# 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
票数 65
EN

Stack Overflow用户

发布于 2013-03-10 03:26:15

您是否尝试过以jenkins用户身份登录?

试试这个:

代码语言:javascript
复制
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)。也许你漏掉了一些角色?

票数 6
EN

Stack Overflow用户

发布于 2013-03-10 03:34:05

根据此article,您可以尝试执行以下命令:

代码语言:javascript
复制
   ssh-add -l

如果你的密钥不在列表中,那么

代码语言:javascript
复制
   ssh-add /var/lib/jenkins/.ssh/id_rsa_project
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15314760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档