我正在尝试使用ssh-agent从脚本化的Jenkins管道将提交推送到远程git存储库。
我已经安装了插件,并已将SSH私钥添加到Jenkins的Credentials部分。以下是从Jenkinsfile实例化并调用的Groovy类的片段:
stages.sshagent(credentials:['26954b1f-2e32-4b4b-8923-3b7a9fbac6c9']) {
stages.sh "git push origin ${branchName}"
}
注意:stage只是Jenkinsfile中舞台的表示。该类编译正常但每次都显示以下错误消息:
FATAL: [ssh-agent] Could not find specified credentials
如果我使用git客户端的凭据然后它工作正常但不幸的是这不支持git push。
答案 0 :(得分:2)
这个问题有几天(944)没有答案,我想您可能已经解决了问题,但请注意。我认为您所遇到的问题/您没有在代码中指出凭证ID,或者ID 26954b1f-2e32-4b4b-8923-3b7a9fbac6c9不是正确的密码。
要将私钥添加到Jenkins,请访问:
Jenkins>凭据>系统>全局凭据
使用私钥选择SSH用户名,然后在ID字段中
注意:您需要安装SSH Agent Plugin
ID:
内部唯一ID,用于标识这些凭据 从作业和其他配置。在这种情况下,通常留空 将会生成一个ID,这对于使用Visual创建的作业是很好的 形式。在使用来自以下位置的凭据时明确指定很有用 脚本化配置。
Groovy代码示例
sshagent(['jenkins-ssh-qa']) {
sh "ssh -o StrictHostKeyChecking=no devops@172.1.1.1 ${dockerRun}"
}