如何在jenkinsfile中为管道作业使用凭证类型“SSH用户名和私钥”

时间:2017-07-26 09:34:29

标签: jenkins groovy

我正在尝试使用jenkinsfile中的ssh运行远程命令。为此,我使用* .pem文件来访问远程机器。我已经在jenkins中使用“具有私钥的SSH用户名”创建了jenkins凭证。

有没有办法可以在jenkinsfile中使用该凭证,而不是给sh“ssh -i * .pem username @ hostname命令”进行身份验证?

1 个答案:

答案 0 :(得分:9)

不,您需要使用Jenkins Credentials Binding Plugin。基本上,您从密钥文件创建绑定,将密钥设置为任何变量,让我们说mykey,您可以将构建脚本中的密钥用作cat mykey。 或者将您的构建脚本存储为:

cat mykey > sshkey
chmod 600 sshkey
eval `ssh-agent -s`
ssh-add sshkey

然后你可以ssh,因为添加了ssh密钥 这篇文章提供了Jenkins Credentials Binding插件的所有功能,非常好https://support.cloudbees.com/hc/en-us/articles/203802500-Injecting-Secrets-into-Jenkins-Build-Jobs