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