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

有什么方法可以在 jenkinsfile 中使用该凭据而不是给 sh "ssh -i *.pem username@hostname command"进行身份验证?

最佳答案

不,您需要使用 Jenkins Credentials Binding Plugin 。基本上,您从 key 文件创建绑定(bind),将 key 设置为任何变量,比如说 mykey ,您可以在构建脚本中使用 key 作为 cat mykey
或存储在您的构建脚本中:

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

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

关于jenkins - 如何在 jenkinsfile 中使用凭证类型 "SSH Username with private key"进行管道作业,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45322985/

10-16 17:48
查看更多