我想使用scp / ssh将一些文件上传到服务器。我发现我需要使用基于证书的身份验证,但问题是如何?我真正想做的是使用与Jenkins中存储的git - passworded ssh证书相同的凭证。但是,我无法解决如何 - 片段生成器没有明显的选择。
其他人做了什么?是否有未记录的功能可以做到这一点?
答案 0 :(得分:22)
withCredentials([sshUserPrivateKey(credentialsId: "yourkeyid", keyFileVariable: 'keyfile')]) {
stage('scp-f/b') {
sh "scp -i ${keyfile} do sth here"
}
}
也许这就是你想要的。安装Credentials Plugin
和
Credentials Binding Plugin
。添加一些凭据,然后您将获得“yourkeyid”,将此凭据绑定到keyFileVariable,passwordVariable等。
可以在Jenkins Credentials Binding Plugin,Credentials Plugin,SSH Pipeline Steps插件的Github网站上找到更多详细信息和文档
答案 1 :(得分:8)
如果您安装了SSH Agent plugin,则可以使用ssh-agent
管道步骤来运行带有ssh-agent活动的shell脚本。 ssh-agent
获取Jenkins凭证ID(密码ssh证书,就像你对git那样)。