21

我在 Ec2 上使用基本的 amazon ami linux-我已经安装了 jenkins,但是当我从 github 中提取 repo 时,出现以下错误:

Building in workspace /var/lib/jenkins/workspace/build social
Checkout:build social / /var/lib/jenkins/workspace/build social - hudson.remoting.LocalChannel@5c7b21b
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone git@github.com:adulion/.git
hudson.plugins.git.GitException: Could not clone git@github.com:adulion/.git
    at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1117)
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1059)
    at hudson.FilePath.act(FilePath.java:832)
    at hudson.FilePath.act(FilePath.java:814)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1059)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
    at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
    at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
    at hudson.model.Run.run(Run.java:1421)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:238)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin git@github.com:adulion/.git /var/lib/jenkins/workspace/build social" returned status code 128:
stdout: Cloning into /var/lib/jenkins/workspace/build social...

stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly

我已经为安装 jenkins 的当前用户生成了一个密钥,并设法使用 git 命令行克隆了 repo,但 jenkins 不能。

我已将 ~/.ssh 文件复制到 /var/lib/jenkins/.ssh

我已将 github 添加到已知主机,但我已经用完了可以尝试的解决方案。有人知道我哪里出错了吗?有没有办法让詹金斯显示它正在使用的公钥,如果它使用正确的公钥我可以调试?

我删除了 repo 的名称,因为它是一个私人 repo

4

6 回答 6

30

错误似乎是:主机密钥验证失败。

您应该以 Jenkins 用户身份登录到您的 Jenkins 主机并运行:

ssh git@github.com

然后对有关主机密钥的提示回答“是”。这只需要执行一次。

或者,您可以将“StrictHostKeyChecking no”添加到 ~jenkins/.ssh/config。

于 2012-04-19T22:08:06.897 回答
6

1)将用户切换到您的詹金斯帐户

su jenkins

2)创建没有密码的密钥

3) ssh git@github.com

这对我来说非常有效。

您可能需要为 jenkins 帐户创建密码,如果需要,请使用sudo passwd jenkins

于 2012-11-29T00:58:48.783 回答
5

我正在使用一台 jenkins 机器来检查多个 github 存储库,并且在设置时遇到了类似的问题。我最终做的是为 jenkins 配置 SSH 配置文件,以便 SSH 自动知道与每个存储库关联的 id 文件。

/var/lib/jenkins/.ssh/config:

Host github-ABC
  HostName github.com
  User git
  IdentityFile /var/lib/jenkins/.ssh/id_rsa_ABC

在源代码管理下的 Jenkins 项目配置中,我将其用作存储库名称:

git@github-ABC:user/repo.git

最后,我使用 SSH 公钥作为 github 存储库中的部署密钥。

于 2012-04-19T09:03:44.223 回答
5

他以下帮助了我:

在 Jenkins 下登录

sudo su jenkins

将您的 github 密钥复制到 Jenkins .ssh 文件夹

cp ~/.ssh/id_rsa_github* /var/lib/jenkins/.ssh/

重命名键

mv id_rsa_github id_rsa
mv id_rsa_github.pub id_rsa.pub
于 2012-07-09T12:31:04.193 回答
2

如果您以 jenkins 身份登录,您可以这样做

ssh -i ~/.ssh/id_rsa git@github.com

其中 ~/.ssh/id_rsa 是路径/to/your/ssh/key,它将提示输入密码并添加到 known_hosts 文件

于 2013-09-12T22:35:12.080 回答
-1

您需要将 jenkins 的 ssh 密钥添加到您的 github 用户。

生成 ssh 密钥

去:

Github->Settings(Top right)->SSH Keys(Left Pane)->Add SSH Key

于 2015-01-18T18:18:46.447 回答