在詹金斯ssh-agent插件中找不到指定为参数的凭据

时间:2018-11-02 01:41:19

标签: jenkins private-key ssh-agent

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

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

1 个答案:

答案 0 :(得分:0)

在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}访问和使用凭据中的用户名和密码值。