gpt4 book ai didi

node.js - jenkins 中私有(private) git npm 存储库的主机 key 验证失败

转载 作者:行者123 更新时间:2023-12-05 07:23:29 26 4
gpt4 key购买 nike

我们有一个 Node 项目,它使用一些私有(private)的 bitbucket 存储库作为 npm 依赖项。这些被添加到我们的 package.json 中,如下所示:

"errors": "git+ssh://git@bitbucket.org/[USER]/[REPO].git",

我们有一个用 Jenkinsfile 定义的 jenkins 构建作业。此文件使用 Credentials Plugin定义一个在构建作业中用于 pull 私有(private)存储库的私有(private) ssh key ,如下所示:

stage('Install dependencies') {
container('node-image') {
sshagent(['degov-git']) {
sh 'mkdir $HOME/.ssh && touch $HOME/.ssh/known_hosts && chmod 600 $HOME/.ssh/known_hosts'
sh 'ssh-keyscan -t rsa bitbucket.org >> $HOME/.ssh/known_hosts'
sh 'npm install'
}
}

但是,我们收到主机 key 验证失败的错误消息:

[2019-05-05T07:36:26.027Z] npm ERR! Error while executing:
[2019-05-05T07:36:26.027Z] npm ERR! /usr/bin/git ls-remote -h -t ssh://git@bitbucket.org/[USER]/[REPO].git
[2019-05-05T07:36:26.027Z] npm ERR! Host key verification failed.

在Jenkins中使用sshagent时是否可以添加host key?我们将如何着手做这件事?

谢谢。

最佳答案

很可能,bitbucket.org 有许多面向公众的服务器,因此对单个 URI 进行 key 扫描不一定有效(当随机访问不同的服务器时)。此外,将(>> 而不是 >)附加到 known_hosts 文件的策略最终会生成一个非常大的文本文件,其中包含重复项,也许冲突的条目。 Cloudbees讨论解决问题的策略。

  1. 一个解决方案可能是将 key 扫描调用更改为 ssh-keyscan -t ‘ssh-rsa,ssh-dss’ $AGENT_HOSTNAME_OR_IP 以收集额外的 key 。我还考虑使用 ~ 作为 .ssh 目录的位置,而不是 $HOME 我注意到这在最近的一份工作中是不同的排除故障。使用 sh "printenv | sort" 显示作业中当前 ENVIRONMENT 变量的准确值。

  2. 另一个解决方案(可能不太好)是恢复到 SSH 代理以前的行为 until mid-2017它在哪里设置 StrictHostKeyChecking 关闭。 (在 Jenkins 服务器和本地 Git 服务器彼此相邻的安全 LAN 上——也许通过专用网络——这可能没问题。)这是通过清理和重写 ~/.ssh/config 文件类似 sh "mkdir -p ~/.ssh && echo 'Host *' > ~/.ssh/config && echo ' StrictHostKeyChecking no'。我想今天我不会'不要在开放的 Web 上执行此操作,但这是一个值得在本地考虑的选项。

注意 Jenkins 上 sshagent 的另一个常见错误报告是 uid 不存在用户 所以 ssh 操作失败。几个版本前,SSH 代理更新了一个基础库,现在需要系统上的配置用户。同样,这可以通过类似于 solution in this Jenkins ticket 的方法来解决。 .

希望此处的信息能找到其他可能偶然发现此问题的人,将其作为相关故障排除关键字的第一个搜索结果。

关于node.js - jenkins 中私有(private) git npm 存储库的主机 key 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55990135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com