jenkins - 如何在 jenkinsfile 内使用凭证类型 "SSH Username with private key"进行管道作业

标签 jenkins groovy

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

相关文章:

jenkins - 如何为 Jenkins 设置 ssh key 以通过 ssh 发布

jenkins - 如何使用输入构建参数设置超时?我正在使用声明式管道

json - 从 mule esb 中的 JSON 中提取所有特定字段

grails - 如何将对象实例从一个 Controller 传递到grails中的另一个 Controller 中的 Action

groovy - def 与 Groovy 中的最终 def

jenkins - 从 Jenkins 管道获取失败原因

Jenkins 中的 Python 模块导入失败

android - 使用$ VARIABLE作为Jenkins中Gradle插件的构建任务

angularjs - 在单个 http 请求中使用与每个文件相关的元数据上传多文件

android - 在android studio中导入项目时出现Resolve错误,无法加载类 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'