我正在尝试使用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']]])
它工作正常,但提取大型仓库,我想避免
答案 0 :(得分:-1)
关于主机密钥验证问题,您需要将"socket"
的主机密钥添加到SSH git.comp.com
文件中。尝试在known_hosts
块之前 中将以下命令集成到您的Jenkins脚本中:
sshagent
这对我有用。
有关更多信息,请参见Jenkins ssh-agent starts and then stops immediately in pipeline build。