使用ssh,scp或sftp

时间:2017-06-05 20:33:54

标签: jenkins ssh jenkins-pipeline

我想使用scp / ssh将一些文件上传到服务器。我发现我需要使用基于证书的身份验证,但问题是如何?我真正想做的是使用与Jenkins中存储的git - passworded ssh证书相同的凭证。但是,我无法解决如何 - 片段生成器没有明显的选择。

其他人做了什么?是否有未记录的功能可以做到这一点?

2 个答案:

答案 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 PluginCredentials PluginSSH Pipeline Steps插件的Github网站上找到更多详细信息和文档

答案 1 :(得分:8)

如果您安装了SSH Agent plugin,则可以使用ssh-agent管道步骤来运行带有ssh-agent活动的shell脚本。 ssh-agent获取Jenkins凭证ID(密码ssh证书,就像你对git那样)。