【发布时间】:2018-11-02 13:21:52
【问题描述】:
我创建了一个凭据参数 TEST_CREDENTIALS ,当我尝试注入参数化为 ${TEST_CREDENTIALS} 的 ssh 插件代理时,我看到以下错误
java.io.IOException: [ssh-agent] 找不到指定的凭据
【问题讨论】:
标签: jenkins private-key ssh-agent
我创建了一个凭据参数 TEST_CREDENTIALS ,当我尝试注入参数化为 ${TEST_CREDENTIALS} 的 ssh 插件代理时,我看到以下错误
java.io.IOException: [ssh-agent] 找不到指定的凭据
【问题讨论】:
标签: jenkins private-key ssh-agent
在 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} 访问和使用凭据中的用户名和密码值。
【讨论】: