标准错误:主机密钥验证失败 | GitHub |詹金斯 |视窗
Posted
技术标签:
【中文标题】标准错误:主机密钥验证失败 | GitHub |詹金斯 |视窗【英文标题】:stderr: Host key verification failed | GitHub | Jenkins | Windows 【发布时间】:2019-06-14 11:39:39 【问题描述】:我正在使用 GitHub 设置 Jenkins。以下是我到目前为止所做的:
-
在我们的一台 Windows 虚拟机上安装了 Jenkins 和 Git。
收到一个普通用户。我正在将此用户用于 github。
使用该用户设置 ssh 密钥并将这些 ssh 密钥添加到 github 帐户。
还将 Git SSH 密钥复制到 Jenkins 文件夹。
毕竟,当我尝试运行作业 [该作业只是拉一个 repo] 时,我收到以下错误:
在工作区 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 config 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 fetch --tags --force --progress git@github.ABC.com:ABC/REPO.git +refs/heads/:refs/remotes/origin / 错误:获取远程 repo '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 更多 错误:获取远程 repo 'origin' 时出错已完成:失败
【问题讨论】:
【参考方案1】:确保使用Jenkins SSH credentials 以使用该插件记录私钥。
然后您就可以使用该凭证来完成您的工作了。
在 OP 的案例中,有两个问题:
私钥生成 4096 位(而不是默认的 1024) 使用新的 OPENSSL 格式(而不是旧的 OpenSSH 格式)生成私钥,as explained here。 确保私钥在全局范围内注册(作为 global credential):【讨论】:
评论不用于扩展讨论;这个对话是moved to chat。以上是关于标准错误:主机密钥验证失败 | GitHub |詹金斯 |视窗的主要内容,如果未能解决你的问题,请参考以下文章