Gibt es eine Möglichkeit, alle Benutzer in der Befehlszeile ohne Benutzer / Kennwort zurückzusetzen (oder nur die Sicherheitseinstellungen zu deaktivieren), da ich es geschafft habe, mich vollständig auszuschließen Jenkins
?
quelle
Gibt es eine Möglichkeit, alle Benutzer in der Befehlszeile ohne Benutzer / Kennwort zurückzusetzen (oder nur die Sicherheitseinstellungen zu deaktivieren), da ich es geschafft habe, mich vollständig auszuschließen Jenkins
?
Die einfachste Lösung ist , um vollständig zu deaktivieren Sicherheit - Änderung true
zu false
in - /var/lib/jenkins/config.xml
Datei.
<useSecurity>true</useSecurity>
Dann starten Sie Jenkins einfach neu
sudo service jenkins restart
Gehen Sie dann zum Admin-Bereich und stellen Sie alles erneut ein.
Wenn Sie Ihre Jenkins in einem k8s-Pod von einem Docker aus ausführen, was in meinem Fall der Fall ist und keinen service
Befehl ausführen kann, können Sie Jenkins einfach neu starten, indem Sie den Pod löschen:
kubectl delete pod <jenkins-pod-name>
Sobald der Befehl erteilt wurde, beenden die k8s den alten Pod und starten einen neuen.
sudo service jenkins restart
find / -name "config.xml"
in Ihrem Terminal.Eine andere Möglichkeit besteht darin, die Konfigurationsdatei für Ihren Benutzer manuell zu bearbeiten (z. B. /var/lib/jenkins/users/username/config.xml) und den Inhalt von passwordHash zu aktualisieren :
Sobald Sie dies getan haben, starten Sie Jenkins einfach neu und melden Sie sich mit diesem Passwort an:
quelle
<passwordHash>
XML-Tag ist ein untergeordnetes Element von<hudson.security.HudsonPrivateSecurityRealm_-Details>
. Sehen Sie sich den Standard-Administrator an, um eine Vorstellung von der gesamten XML-Struktur zu erhalten.Ich fand die fragliche Datei in / var / lib / jenkins mit dem Namen config.xml und änderte sie, um das Problem zu beheben.
quelle
/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
Das
<passwordHash>
Element inusers/<username>/config.xml
akzeptiert Daten des FormatsWenn also Ihr Salz
bar
und Ihr Passwort istfoo
, können Sie den SHA256 wie folgt herstellen:Sie sollten
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
als Ergebnis erhalten. Nehmen Sie den Hasch und geben Sie ihn mit dem Salz in<passwordHash>
:Starten Sie Jenkins neu und melden Sie sich mit dem Kennwort an
foo
. Setzen Sie dann Ihr Passwort auf etwas anderes zurück. (Jenkins verwendet standardmäßig bcrypt, und eine Runde SHA256 ist keine sichere Methode zum Speichern von Kennwörtern. Beim Zurücksetzen Ihres Kennworts wird ein bcrypt-Hash gespeichert.)quelle
In El-Capitan kann config.xml nicht unter gefunden werden
Es ist verfügbar in
Öffnen Sie danach, wie bereits erwähnt, die Datei config.xml und nehmen Sie die folgenden Änderungen vor
In diesem ersetzen
<useSecurity>true</useSecurity>
durch<useSecurity>false</useSecurity>
Entfernen
<authorizationStrategy>
und<securityRealm>
Speichern Sie es und starten Sie die Jenkins neu ( sudo service jenkins restart )
quelle
Die Antwort zum Ändern war richtig. Ich denke jedoch, es sollte erwähnt werden, dass dies
/var/lib/jenkins/config.xml
ungefähr so aussieht, wenn Sie "Projektbasierte Matrix-Autorisierungsstrategie" aktiviert haben. Das Löschen/var/lib/jenkins/config.xml
und Neustarten von Jenkins reicht ebenfalls aus. Ich habe auch die Benutzer gelöscht/var/lib/jenkins/users
, um von vorne zu beginnen.quelle
So setzen Sie es zurück, ohne die Sicherheit zu deaktivieren, wenn Sie Matrixberechtigungen verwenden (wahrscheinlich leicht an andere Anmeldemethoden anpassbar):
config.xml
setzendisableSignup
auffalse
.config.xml
duplizieren eine der<permission>hudson.model.Hudson.Administer:username</permission>
Linien und ersetztusername
mit dem neuen Benutzer an .disableSignup
wieder auftrue
inconfig.xml
.Optionale Bereinigung:
<permission>
Zeile inconfig.xml
.Bei dieser Antwort wurden keine Wertpapiere beschädigt.
quelle
Führen Sie die folgenden Befehle aus, um die Jenkins-Sicherheit in einfachen Schritten unter Linux zu deaktivieren:
Es entfernt
useSecurity
undauthorizationStrategy
Zeilen aus Ihrerconfig.xml
Root-Konfigurationsdatei und startet Ihre Jenkins neu.Siehe auch: Deaktivieren Sie die Sicherheit auf der Jenkins-Website
Nachdem Sie den Zugriff auf Jenkins erhalten haben, können Sie die Sicherheit auf Ihrer Seite " Globale Sicherheit konfigurieren" wieder aktivieren, indem Sie " Zugriffskontrolle / Sicherheitsbereich" auswählen . Vergessen Sie danach nicht , den Administrator zu erstellen .
quelle
Möglicherweise sperren Sie sich aufgrund eines Berechtigungsfehlers versehentlich aus Jenkins aus und haben keinen serverseitigen Zugriff, um zum Jenkins-Benutzer oder Root zu wechseln. Sie können einen Job in Jenkins erstellen und diesen dem Shell-Skript hinzufügen:
Klicken Sie dann auf Jetzt erstellen und starten Sie Jenkins neu (oder den Server, falls erforderlich!).
quelle
ProjectMatrixAuthorization
. Wenn ich die Änderung vornehme und Jenkins neu starte, wird in der Jenkins-Benutzeroberfläche eine Java-Ausnahme angezeigt. Um dies zu beheben, entfernte ich auch die Zeile mitauthorizationStrategy
und es war wieder in Ordnung. Jenkins las es beim nächsten Start als leeres Tag.Wir können das Passwort zurücksetzen, während die Sicherheit aktiviert bleibt.
Die Datei config.xml in / var / lib / Jenkins / users / admin / verhält sich ähnlich wie die / etc / shadow-Datei Linux- oder UNIX-ähnliche Systeme oder die SAM-Datei in Windows, in dem Sinne, dass sie den Hash von speichert Passwort des Kontos.
Wenn Sie das Kennwort zurücksetzen müssen, ohne sich anzumelden, können Sie diese Datei bearbeiten und den alten Hash durch einen neuen ersetzen, der aus bcrypt generiert wurde:
Dadurch wird Ihr Hash mit dem Präfix 2a ausgegeben, dem richtigen Präfix für Jenkins-Hashes.
Bearbeiten Sie nun die Datei config.xml:
Sobald Sie den neuen Hash eingefügt haben, setzen Sie Jenkins zurück:
(wenn Sie sich auf einem System mit systemd befinden):
Sie können sich jetzt anmelden und haben Ihr System keine Sekunde offen gelassen.
quelle
Kopieren Sie das Kennwort aus der Datei initialAdminPassword und fügen Sie es in die Jenkins ein.
quelle
Um die standardmäßige Sicherheit für Jenkins unter Windows zu entfernen,
Sie können die in Config.xml erstellte Datei Config.xml durchlaufen, die in /users/{UserName}/.jenkins erstellt wurde.
In dieser Datei können Sie den Code von ändern
Zu,
quelle
1 Überprüfen Sie zuerst den Speicherort, wenn Sie War oder Linux oder Windows basierend darauf installieren
Zum Beispiel, wenn Krieg unter Linux und für Admin-Benutzer
Gehe zu diesem Tag nach #jbcrypt:
Ändern Sie dieses Passwort mithilfe einer beliebigen Website für den bcrypt-Hash-Generator
Stellen Sie sicher, dass es mit $ 2a beginnt, da dieses von Jenkins verwendet wird
quelle
Schritt 1: Gehen Sie in das Verzeichnis cd .jenkins / secret, dann erhalten Sie ein 'initialAdminPassword'.
Schritt 2: nano initialAdminPassword
Sie erhalten ein Passwort
quelle
Das Ändern von
<useSecurity>true</useSecurity>
auf<useSecurity>false</useSecurity>
wird nicht ausreichen. Sie sollten auch Elemente entfernen<authorizationStrategy>
und<securityRealm>
Ihren Jenkins-Server neu starten, indem Sie dies tunsudo service jenkins restart
.Denken Sie daran, dass die Einstellung
<usesecurity>
auffalse
nur ein Problem für Sie verursachen kann, da diese Anweisungen in der offiziellen Dokumentation hier aufgeführt sind .quelle
Ein einfacher Ausweg besteht darin, sich mit dem Administrator psw bei Ihrem Administrator anzumelden:
sudo su -
xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
ctrl + v
auf das Passwort-Eingabefeld.Installieren Sie xclip, wenn Sie es nicht haben:
$ sudo apt-get install xclip
quelle
Im Falle von Jenkins über einen Container von einem verwalteten Kubernetes POD ist ein wenig komplexer , da:
kubectl exec PODID --namespace=jenkins -it -- /bin/bash
werden Sie den Zugriff ermöglichen , direkt auf den Behälter läuft Jenkins, aber Sie werden nicht Root - Zugriff haben ,sudo
,vi
und viele Befehle sind nicht verfügbar und daher eine Abhilfe wird gebraucht.Verwenden
kubectl describe pod [...]
Sie diese Option, um den Knoten zu finden, auf dem Ihr Pod ausgeführt wird, sowie die Container-ID(docker://...)
SSH
in den Knotendocker exec -ti -u root -- /bin/bash
um auf den Container mit Root-Berechtigungen zuzugreifenapt-get update
sudo apt-get install vim
Der zweite Unterschied besteht darin, dass die Jenkins-Konfigurationsdatei in einem anderen Pfad abgelegt wird, der dem Einhängepunkt des persistenten Volumes entspricht. Das heißt
/var/jenkins_home
, dieser Speicherort kann sich in Zukunft ändern. Überprüfen Sie, ob er ausgeführt wirddf
.Deaktivieren Sie dann die Sicherheit - ändern Sie in der
/var/jenkins_home/jenkins/config.xml
Datei true in false .Jetzt reicht es aus, die Jenkins neu zu starten. Diese Aktion führt dazu, dass der Container und der Pod sterben. Sie wird in einigen Sekunden erneut erstellt, wobei die Konfiguration aktualisiert wird (und alle Chancen wie vi, Update gelöscht werden), dank des anhaltenden Volumes.
Die gesamte Lösung wurde auf Google Kubernetes Engine getestet. UPDATE Beachten Sie, dass Sie
ps -aux
das Kennwort auch im Klartext ausführen können , auch ohne Root-Zugriff.quelle
Oft haben Sie keine Berechtigung zum Bearbeiten der Datei config.xml.
Am einfachsten wäre es,
config.xml
mit dem Befehl sudo ein Zurück zu nehmen und zu löschen.Starten Sie die Jenkins mit dem Befehl neu
sudo /etc/init.d/jenkins restart
Dadurch wird die gesamte Sicherheit in Jenkins deaktiviert und die Anmeldeoption wird ausgeblendet
quelle
Mit bcrypt können Sie dieses Problem lösen. Erweitern der @ Reem-Antwort für jemanden, der versucht, den Prozess mithilfe von Bash und Python zu automatisieren.
Ich habe das Passwort hier fest codiert, aber es kann je nach Anforderung eine Benutzereingabe sein. Stellen Sie außerdem sicher, dass
sleep
alle anderen Befehle, die sich um Jenkins drehen, fehlschlagen.quelle
Verwenden Sie die JAVA-Eigenschaft, um sowohl die Sicherheit als auch den Startassistenten ganz einfach zu deaktivieren:
Das Schöne daran ist, dass Sie es in einem Docker-Image verwenden können, sodass Ihr Container immer sofort ohne Anmeldebildschirm gestartet wird:
Beachten Sie, dass sich die Jenkins-Datei config.xml, wie von anderen erwähnt,
/var/jenkins_home
im Image befindet. Die Verwendungsed
zum Ändern aus der Docker-Datei schlägt jedoch fehl, da die Datei config.xml (vermutlich) erst nach dem Start des Servers vorhanden ist.quelle
Ich hatte ein ähnliches Problem und nach der Antwort von ArtB
Ich stellte fest, dass mein Benutzer nicht die richtigen Konfigurationen hatte. Also, was ich getan habe:
Hinweis: Das manuelle Ändern solcher XML-Dateien ist riskant. Tun Sie dies auf eigenes Risiko. Da ich bereits ausgesperrt war, hatte ich nicht viel zu verlieren. AFAIK Im schlimmsten Fall hätte ich die Datei ~ / .jenkins / config.xml wie im vorherigen Beitrag erwähnt gelöscht.
**> 1. ssh zur jenkins maschine
unter
hinzufügen:
Jetzt können Sie in verschiedene Richtungen gehen. Zum Beispiel hatte ich github oauth Integration, also hätte ich versuchen können, die authorisationStrategy durch etwas wie das folgende zu ersetzen:
Hinweis: In meinem Fall hat es funktioniert, weil ich ein bestimmtes Github-Oauth-Plugin hatte, das bereits konfiguriert war. Es ist also riskanter als die vorherige Lösung.
quelle
Bearbeiten Sie die Datei $ JENKINS_HOME / config.xml und ändern Sie die Sicherheitskonfiguration folgendermaßen:
Danach starten Sie Jenkins neu.
quelle
Für jemanden, der macOS verwendet, kann die neue Version nur von Homebrew installiert werden. Zum Ausruhen muss diese Befehlszeile Folgendes verwenden:
quelle