Saya telah mengambil alih proyek di mana banyak kredensial Jenkins memiliki kata sandi atau string frasa sandi yang perlu saya ketahui untuk dapat melanjutkan proyek, sayangnya ini tidak didokumentasikan di mana pun.
Saya telah memeriksa credentials.xml
file tempat kredensial ini disimpan, tetapi tidak dalam teks biasa, misalnya:
<passphrase>{AAAAAAAAAAAANzxft/rDzyt8mhxpn3O72dxvVqZksL5vBJ4jNKvAjAA=}</passphrase>
Catatan: Saya telah sedikit mengubahnya karena alasan privasi.
Bagaimana saya bisa mendekripsi kata sandi aslinya berdasarkan string di atas?
jenkins
encryption
kenorb
sumber
sumber
"{...}"
hapus ekstra satu kali.Jawaban:
Untungnya ada
hudson.util.Secret.decrypt()
fungsi yang bisa digunakan untuk ini, jadi:/script
halaman.Jalankan perintah berikut:
atau:
di mana
{XXX=}
kata sandi terenkripsi Anda Ini akan mencetak kata sandi biasa.Untuk melakukan yang sebaliknya, jalankan:
Sumber: intisari di
tuxfight3r/jenkins-decrypt.groovy
.Atau periksa skrip berikut:
tweksteen/jenkins-decrypt
,menski/jenkins-decrypt.py
.Untuk detail lebih lanjut, periksa: Penyimpanan kredensial di Jenkins .
sumber
Berikut ini cuplikan singkat yang bisa Anda jalankan dari konsol skrip jenkins, untuk membuang semua kredensial Anda ke teks biasa.
Versi yang lebih rumit yang mendaftar untuk penyedia kredensial non-sistem:
sumber
Sebagai catatan, cuplikan berikut yang akan ditempelkan ke konsol juga berfungsi:
sumber