是的你可以把它拿回来。它是AES加密的,你必须先做一些事情,比如搜索密码。看看吧 秘密 类。
但你看,已经有一些脚本了:
https://github.com/tweksteen/jenkins-decrypt https://gist.github.com/menski/8f9980999ed43246b9b2
有关java的更多信息和方法,可以在这里找到:
Jenkins使用什么密码加密?
通过访问打开Jenkins的安装脚本控制台 http(s)://${JENKINS_ADDRESS}/script 。
http(s)://${JENKINS_ADDRESS}/script
在那里,执行以下Groovy脚本:
println( hudson.util.Secret.decrypt("${ENCRYPTED_PASSPHRASE_OR_PASSWORD}") )
哪里 ${ENCRYPTED_PASSPHRASE_OR_PASSWORD} 是加密的内容 <password> 要么 <passphrase> 您正在寻找的XML元素。
${ENCRYPTED_PASSPHRASE_OR_PASSWORD}
<password>
<passphrase>
我知道这是旧的,但是...使用管道它非常简单。这是一个将凭证打印到控制台的示例管道:
node { def creds stage('Sandbox') { withCredentials([usernamePassword(credentialsId: 'my-creds', passwordVariable: 'C_PASS', usernameVariable: 'C_USER')]) { creds = "\nUser: ${C_USER}\nPassword: ${C_PASS}\n" } println creds } }
执行此管道会在控制台中生成以下内容:
Started by user First Last (username) Running in Durability level: MAX_SURVIVABILITY [Pipeline] node Running on Jenkins in /jenkins/workspace/sandbox [Pipeline] { [Pipeline] stage [Pipeline] { (Sandbox) [Pipeline] withCredentials [Pipeline] { [Pipeline] } [Pipeline] // withCredentials [Pipeline] echo User: testuser Password: Ab37%ahc*z [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline Finished: SUCCESS
这里的诀窍是凭证只被掩盖在内部 withCredentials 块。如果将它们分配给块外部定义的变量,然后在块外部打印该变量,则不应用任何掩码。据报道这是一个错误,但是没有做任何事情。
withCredentials
如果你正在使用 Jenkins Credential绑定插件 ,你可以让它将你的密码写入文件。您不能只输出到控制台,因为插件会将其输出。