stderr:主机密钥验证失败| GitHub |詹金斯| Windows

时间:2019-01-21 05:27:16

标签: git jenkins github ssh

我正在使用GitHub设置Jenkins。以下是我到目前为止所做的事情:

  1. 在我们的其中一个Windows VM上安装了Jenkins和Git。
  2. 已收到一个普通用户。我正在将此用户用于github。
  3. 为此用户设置ssh密钥,并将这些ssh密钥添加到github帐户。
  4. 还将Git SSH密钥复制到Jenkins文件夹。

在上述所有情况下,当我尝试运行该作业(该作业只是回购仓库)时,出现以下错误:

  
    

在工作区D:\ Jenkins \ workspace \ test中构建     C:\ Program Files \ Git \ bin \ git.exe rev-parse --is-inside-work-tree#timeout = 10从远程Git存储库获取更改     C:\ Program Files \ Git \ bin \ git.exe配置remote.origin.url git@github.ABC.com:ABC / REPO.git#timeout = 10获取上游更改     来自git@github.ABC.com:ABC / REPO.git     C:\ Program Files \ Git \ bin \ git.exe --version#timeout = 10使用GIT_ASKPASS设置凭据     C:\ Program Files \ Git \ bin \ git.exe提取--tags --force --progress git@github.ABC.com:ABC / REPO.git + refs / heads / :refs / remotes / origin /     错误:提取远程仓库“来源”时出错     hudson.plugins.git.GitException:无法从中获取     git@github.ABC.com:ABC / REPO.git在     hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:888)在     hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1155)在     hudson.plugins.git.GitSCM.checkout(GitSCM.java:1186)在     hudson.scm.SCM.checkout(SCM.java:504)在     hudson.model.AbstractProject.checkout(AbstractProject.java:1208)在     hudson.model.AbstractBuild $ AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574)       在     jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)       在     hudson.model.AbstractBuild $ AbstractBuildExecution.run(AbstractBuild.java:499)       在hudson.model.Run.execute(Run.java:1810)处     hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)在     hudson.model.ResourceController.execute(ResourceController.java:97)       在hudson.model.Executor.run(Executor.java:429)上,原因如下:     hudson.plugins.git.GitException:命令“ C:\ Program     Files \ Git \ bin \ git.exe获取--tags --force --progress     git@github.ABC.com:ABC / REPO.git + refs / heads / :refs / remotes / origin / ”     返回状态码128:stdout:stderr:主机密钥验证     失败了致命的:无法从远程存储库读取。

         

请确保您具有正确的访问权限,并且存储库存在。

         

在org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2042)       在     org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1761)       在     org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access $ 400(CliGitAPIImpl.java:72)       在     org.jenkinsci.plugins.gitclient.CliGitAPIImpl $ 1.execute(CliGitAPIImpl.java:442)       在hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:886)...还有11个     错误:获取远程存储库“源”时出错:失败

  

1 个答案:

答案 0 :(得分:1)

请务必使用Jenkins SSH credentials以便使用该插件记录私钥。

然后,您可以使用该证书进行工作。

在OP的情况下,存在两个问题:

  • 使用4096位(而不是默认的1024位)生成私钥
  • 使用新的OPENSSL格式(而不是传统的OpenSSH格式)as explained here生成私钥。
  • 确保私钥已在全局范围内注册(作为 global credential ):

global scope