【问题标题】:In jenkins ssh-agent plugin can't find credential specified as parameter在 jenkins ssh-agent 插件中找不到指定为参数的凭据
【发布时间】:2018-11-02 13:21:52
【问题描述】:

我创建了一个凭据参数 TEST_CREDENTIALS ,当我尝试注入参数化为 ${TEST_CREDENTIALS} 的 ssh 插件代理时,我看到以下错误

java.io.IOException: [ssh-agent] 找不到指定的凭据

【问题讨论】:

    标签: jenkins private-key ssh-agent


    【解决方案1】:

    在 Jenkins 中创建凭据并不意味着自动创建环境变量。

    这是您在管道作业中“获取”凭据详细信息(即用户名和密码)的操作。

    .
    .
    .
    environment {
        ARTIFACTORY_CID = 'CREDENTIAL_NAME'
    }
    
    withCredentials([usernamePassword(credentialsId: "${env.ARTIFACTORY_CID}", passwordVariable: 'p_password', usernameVariable: 'p_username')]) {
        server.username = "${p_username}"
        server.password = "${p_password}"
    }
    

    CREDENTIAL_NAME 应该是您的凭证的人类可读的描述性名称(我喜欢根据它们执行的功能来命名)。

    withCredentials([...]) 是管道子句,它将凭证的组件(在本例中为用户名和密码)放入环境变量中。

    鉴于在此示例中我的凭据类型是“带密码的用户名”,我必须使用 usernamePassword(...)。如果我的凭证类型是“带有私钥的 SSH 用户名”,我会使用 sshUserPrivateKey(...)

    usernameVariable 为用户名设置新环境变量的名称。 passwordVariable 为密码设置新环境变量的名称。

    然后您可以使用环境变量${p_username}${p_password} 访问和使用凭据中的用户名和密码值。

    【讨论】:

      猜你喜欢
      • 2016-10-17
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      相关资源
      最近更新 更多