gpt4 book ai didi

security - 将私钥粘贴到 Jenkins 门户网站是否安全?

转载 作者:行者123 更新时间:2023-12-02 13:45:56 24 4
gpt4 key购买 nike

在 Jenkins 中,我只见过一种存储私有(private) ssh key 凭证的方法。

这个方法大家都推荐:在浏览器中打开Jenkins服务器门户网站,进入Credentials , 及以下 Add Credentials , 选择 SSH Username with private key ,将私钥粘贴到网页中,然后点击ok .

我假设这使用 HTML 表单通过 HTTPS 将 POST 请求中的私钥发送到 Jenkins 服务器,然后将私钥本地保存在服务器的磁盘上。

问题 :对问题“How to securely send private keys?”的最高投票回答指出,私有(private) ssh key 只能由 保护。根本不传输 .

我的问题 :将私钥粘贴到 Jenkins 门户网站并通过 HTTPS 传输它们真的安全吗?如果没有,将私钥放入 Jenkins 凭据的最佳方法是什么?

最佳答案

现场

对于几乎所有用例来说,为此使用 Web UI 可能已经足够安全,并且在便利性方面很难被击败。

尽管如此,在需要的地方生成私钥肯定是个好建议,并且绝对可以使用 Jenkins。一种方法:

  • SSH 进入 Jenkins 服务器,并生成 key
  • 在脚本控制台中运行一些 groovy 来创建 Jenkins 凭证
  • 泄露公钥
  • 删除服务器上生成的 key

  • 在本例中,在 Jenkins 服务器上, $HOME$JENKINS_HOME指向 /var/jenkins_home , 并且 key 在 ~/temp 中生成.

    在 Jenkins 服务器上生成 key
    ssh jenkins@my.jenkins.server
    mkdir ~/temp
    cd ~/temp
    ssh-keygen -t rsa -b 4096 -C "some-meaningful-label" -f "./my-in-situ-key"

    这将创建 my-in-situ-keymy-in-situ-key.pub/var/jenkins_home/temp .

    创建 Jenkins 凭证

    在 Jenkins 脚本控制台中:

    import com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey
    import com.cloudbees.plugins.credentials.CredentialsScope
    import com.cloudbees.plugins.credentials.domains.Domain

    def domain = Domain.global()

    def store = Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()

    def privateKeyString = new File('/var/jenkins_home/temp/my-in-situ-key').text
    def keySource = new BasicSSHUserPrivateKey.DirectEntryPrivateKeySource(privateKeyString)

    def privateKeyCredential = new BasicSSHUserPrivateKey(
    CredentialsScope.GLOBAL,
    "temp-stack-overflow-key", // id
    "jenkins", // username
    keySource, // private key
    "", // passphrase
    "Temporary Demo Key" // description
    )

    store.addCredentials(domain, privateKeyCredential)
    "Credential Added"

    在清理之前测试凭证。

    清理

    获取公钥和 一定要删除私钥在你出门的路上。
    cat ~/temp/my-in-situ-key.pub
    rm -rf ~/temp

    Relevant Javadoc

    关于security - 将私钥粘贴到 Jenkins 门户网站是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60731262/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com