Przejąłem projekt, w którym wiele poświadczeń Jenkinsa zawiera hasła lub ciągi hasła, które muszę znać, aby móc kontynuować projekt, niestety nie zostały one nigdzie udokumentowane.
Sprawdziłem credentials.xml
plik, w którym przechowywane są te poświadczenia, ale nie są one zwykłym tekstem, np .:
<passphrase>{AAAAAAAAAAAANzxft/rDzyt8mhxpn3O72dxvVqZksL5vBJ4jNKvAjAA=}</passphrase>
Uwaga: nieznacznie zmieniłem to ze względu na prywatność.
Jak mogę odszyfrować oryginalne hasło na podstawie powyższego ciągu?
jenkins
encryption
kenorb
źródło
źródło
"{...}"
usuń dodatkowy raz.Odpowiedzi:
Na szczęście istnieje
hudson.util.Secret.decrypt()
funkcja, której można użyć do tego celu, więc:/script
strony.Uruchom następujące polecenie:
lub:
gdzie
{XXX=}
jest twoje zaszyfrowane hasło. Spowoduje to wydrukowanie zwykłego hasła.Aby zrobić odwrotnie, uruchom:
Źródło: gist at
tuxfight3r/jenkins-decrypt.groovy
.Alternatywnie sprawdź następujące skrypty:
tweksteen/jenkins-decrypt
,menski/jenkins-decrypt.py
.Aby uzyskać więcej informacji, sprawdź: Przechowywanie poświadczeń w Jenkins .
źródło
Oto krótki fragment, który możesz po prostu uruchomić z konsoli skryptów Jenkins, aby zrzucić wszystkie dane uwierzytelniające do zwykłego tekstu.
Bardziej skomplikowana wersja z listą dostawców niesystemowych poświadczeń:
źródło
Dla przypomnienia, następujący fragment kodu, który ma zostać wklejony do konsoli, również wykonuje zadanie:
źródło