我创建了一个凭据参数TEST_CREDENTIALS,当我尝试注入参数为$ {TEST_CREDENTIALS}的ssh插件代理时,我看到以下错误
java.io.IOException:[ssh-agent]找不到指定的凭据
答案 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}
访问和使用凭据中的用户名和密码值。