【问题标题】:Use ssh credentials in jenkins pipeline with ssh, scp or sftp在带有 ssh、scp 或 sftp 的 jenkins 管道中使用 ssh 凭据
【发布时间】:2017-11-06 17:12:02
【问题描述】:

我想使用 scp/ssh 将一些文件上传到服务器。我发现我需要使用基于证书的身份验证,但问题是如何?我真正想做的是使用与 git 一起使用的相同类型的凭据 - 存储在 Jenkins 中的密码 ssh 证书。但是,我不知道该怎么做 - sn-p 生成器对此没有明显的选择。

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

【问题讨论】:

    标签: jenkins ssh jenkins-pipeline


    【解决方案1】:
        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 站点上找到

    【讨论】:

    【解决方案2】:

    如果您安装了SSH Agent plugin,您可以使用ssh-agent 管道步骤来运行一个启用了ssh-agent 的shell 脚本。 ssh-agent 需要一个 Jenkins 凭据 ID(一个带密码的 ssh 证书,就像你为 git 所拥有的一样)。

    【讨论】:

    • 同意这是一个干净的解决方案 - 但是让 ssh-agent 在 Windows 上正常工作是一个痛苦的 IMO。
    猜你喜欢
    • 2018-04-16
    • 1970-01-01
    • 2017-10-29
    • 2020-07-31
    • 2011-06-30
    • 2016-10-14
    • 1970-01-01
    • 2020-04-28
    • 2014-09-03
    相关资源
    最近更新 更多