奴隶中的Jenkins Sshagent插件未按预期工作

时间:2017-09-01 05:42:00

标签: jenkins groovy jenkins-pipeline

我正在尝试使用sshagent和凭据插件在jenkins管道脚本中的远程仓库上执行几个git命令。

我正在尝试从大型仓库中检查一些文件。这在docker slave上运行。

sshagent(['a5f11347-dff6-4586-ae77-34adeffb0063']) {
  script {
    sh 'git archive --remote=ssh://git@git.comp.com/something.git HEAD Jenkinsfile | tar -x'
    sh 'git archive --remote=ssh://git@git.comp.com/something.git  HEAD:pipeline/ | tar -x;'
     }
    }

但是由于hostkey验证失败错误而失败。任何关于为什么失败的见解。

如果我做了

checkout([$class: 'GitSCM', branches: [[name: "${BRANCH_NAME}"]],
    doGenerateSubmoduleConfigurations: false,
     extensions: [[$class: 'CloneOption', depth: 0, noTags: false, reference: '', shallow: true],
                 [$class: 'CloneOption', noTags: true, reference: '', shallow: true],
                 [$class: 'SparseCheckoutPaths', sparseCheckoutPaths: [[path: 'Jenkinsfile'], [path: 'pipeline/*']]]],
                 submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'a5f11347-dff6-4586-ae77-34adeffb0063',
                  url: 'ssh://git@git.comp.com/something.git']]])

它工作正常,但提取大型仓库,我想避免

1 个答案:

答案 0 :(得分:-1)

关于主机密钥验证问题,您需要将"socket"的主机密钥添加到SSH git.comp.com文件中。尝试在known_hosts块之前 中将以下命令集成到您的Jenkins脚本中:

sshagent

这对我有用。

有关更多信息,请参见Jenkins ssh-agent starts and then stops immediately in pipeline build