2017-06-22 136 views
3

我正在使用Jenkins DC/OS(Mesos),並且該服務沒有標準登錄,而是使用Mesos/Zookeeper進行身份驗證。我可以訪問JENKINS_HOME併爲每個用戶提供配置文件。我看到config.xml並且看到secret.key。我發現這個代碼:Jenkins解密API令牌

https://github.com/abrindeyev/jenkins-helpers/blob/master/bin/get_api_token.rb

,其目的是將詹金斯API令牌從配置解碼。然而,當我運行此我得到以下錯誤:

/root/decrypt_api.rb:28:in `final': wrong final block length (OpenSSL::Cipher::CipherError) 
from /root/decrypt_api.rb:28:in `decrypt' 
from /root/decrypt_api.rb:35:in `<main>' 

下面是一個例子令牌和密鑰(從一個碼頭工人詹金斯測試容器):

密碼config.xml中:

<jenkins.security.ApiTokenProperty> 
<apiToken>{AQAAABAAAAAwrkIhJkGOx+QkqgJ/Ep8NhecxeWcqAs78RI9v5kr8y1FSCJBA4YFHrneQGxmetsj3/xSywFRXItIbtuCufWR6ng==}</apiToken> 
</jenkins.security.ApiTokenProperty> 

祕密密鑰:

bdafc86eae946c35ca57d3af02a82b733741d59e1eca44e0a3f7ef0b8f25f8e6 

如何使用密碼和密鑰解碼令牌?

+0

請告訴我你還沒有真正剛剛過去,並張貼在這裏您的令牌和重點?在你得到你的答案後,你會想要改變這些。 – Clint

+0

正如我在帖子中提到的,這是來自我剛剛啓動的Docker容器。除了測試以外,我沒有使用這個實例。 –

+0

[Jenkins'cre​​dentials.xml提取密碼短語]的可能重複(https://stackoverflow.com/questions/37683143/extract-passphrase-from-jenkins-credentials-xml) – kenorb

回答

0

轉到 http://jenkins-host/script

hashed_pw='your-sercret-hash-S0SKVKUuFfUfrY3UhhUC3J' 
passwd = hudson.util.Secret.decrypt(hashed_pw) 
println(passwd) 

應該解密您的令牌

0

您可以在您的節點要腳本控制檯解碼詹金斯令牌(或去/script),然後運行以下命令:

println(hudson.util.Secret.decrypt("{XXX=}")) 

注意:用您的令牌字符串替換{XXX=}


對其進行解密,而無需使用詹金斯,結帳這些腳本: tweksteen/jenkins-decryptmenski/jenkins-decrypt.py


相關: