Jenkins ssh-agent无法找到凭据

时间:2017-05-09 12:38:24

标签: git jenkins groovy ssh

我正在尝试使用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。

1 个答案:

答案 0 :(得分:2)

这个问题有几天(944)没有答案,我想您可能已经解决了问题,但请注意。我认为您所遇到的问题/您没有在代码中指出凭证ID,或者ID 26954b1f-2e32-4b4b-8923-3b7a9fbac6c9不是正确的密码。

要将私钥添加到Jenkins,请访问:

  

Jenkins>凭据>系统>全局凭据

     
    

使用私钥选择SSH用户名,然后在ID字段中

  
     

注意:您需要安装SSH Agent Plugin

Jenkins-print-screen-ssh-agent-credential

ID:

  

内部唯一ID,用于标识这些凭据   从作业和其他配置。在这种情况下,通常留空   将会生成一个ID,这对于使用Visual创建的作业是很好的   形式。在使用来自以下位置的凭据时明确指定很有用   脚本化配置。

Groovy代码示例

sshagent(['jenkins-ssh-qa']) {
    sh "ssh -o StrictHostKeyChecking=no devops@172.1.1.1 ${dockerRun}"
}