我正在尝试使用jenkinsfile中的ssh运行远程命令。为此,我使用* .pem文件来访问远程机器。我已经在jenkins中使用“具有私钥的SSH用户名”创建了jenkins凭证。
有没有办法可以在jenkinsfile中使用该凭证,而不是给sh“ssh -i * .pem username @ hostname命令”进行身份验证?
答案 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