Existe-t-il un moyen de réinitialiser tout (ou tout simplement désactiver les paramètres de sécurité) à partir de la ligne de commande sans utilisateur / mot de passe car j'ai réussi à me verrouiller complètement Jenkins
?
la source
Existe-t-il un moyen de réinitialiser tout (ou tout simplement désactiver les paramètres de sécurité) à partir de la ligne de commande sans utilisateur / mot de passe car j'ai réussi à me verrouiller complètement Jenkins
?
La solution la plus simple est de désactiver complètement la sécurité - changement true
de false
dans le /var/lib/jenkins/config.xml
fichier.
<useSecurity>true</useSecurity>
Ensuite, redémarrez Jenkins, en
sudo service jenkins restart
Ensuite, allez dans le panneau d'administration et définissez à nouveau tout.
Si vous exécutez votre Jenkins dans le pod k8s à partir d'un docker, ce qui est mon cas et ne pouvez pas exécuter la service
commande, vous pouvez simplement redémarrer Jenkins en supprimant le pod:
kubectl delete pod <jenkins-pod-name>
Une fois la commande émise, les k8 termineront l'ancien pod et en démarreront un nouveau.
sudo service jenkins restart
find / -name "config.xml"
dans votre terminal.Une autre façon serait de modifier manuellement le fichier de configuration pour votre utilisateur (par exemple /var/lib/jenkins/users/username/config.xml) et de mettre à jour le contenu de passwordHash :
Une fois que vous avez fait cela, redémarrez simplement Jenkins et connectez-vous en utilisant ce mot de passe:
la source
<passwordHash>
balise xml est un enfant de<hudson.security.HudsonPrivateSecurityRealm_-Details>
. Regardez l'utilisateur admin par défaut pour avoir une idée de la structure XML totale.J'ai trouvé le fichier en question situé dans / var / lib / jenkins appelé config.xml, modifiant ce qui a résolu le problème.
la source
/Applications/jenkins-2.19.3-0/apps/jenkins/jenkins_home/users/admin/config.xml
L'
<passwordHash>
élément enusers/<username>/config.xml
acceptera les données du formatDonc, si votre sel est
bar
et votre mot de passe,foo
vous pouvez produire le SHA256 comme ceci:Vous devriez obtenir
7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349
le résultat. Prenez le haschich et mettez-le avec le sel dans<passwordHash>
:Redémarrez Jenkins, puis essayez de vous connecter avec un mot de passe
foo
. Réinitialisez ensuite votre mot de passe sur autre chose. (Jenkins utilise bcrypt par défaut, et un tour de SHA256 n'est pas un moyen sûr de stocker les mots de passe. Vous obtiendrez un hachage bcrypt stocké lorsque vous réinitialisez votre mot de passe.)la source
Dans El-Capitan, config.xml est introuvable sur
Son disponible en
puis après cela, comme mentionné, ouvrez le fichier config.xml et apportez les modifications suivantes
Dans ce remplacer
<useSecurity>true</useSecurity>
par<useSecurity>false</useSecurity>
Supprimer
<authorizationStrategy>
et<securityRealm>
Enregistrez-le et redémarrez jenkins ( sudo service jenkins restart )
la source
La réponse sur la modification était correcte. Pourtant, je pense qu'il convient de mentionner que cela
/var/lib/jenkins/config.xml
ressemble à ceci si vous avez activé la «Stratégie d'autorisation de matrice basée sur le projet». La suppression/var/lib/jenkins/config.xml
et le redémarrage de jenkins font également l'affaire. J'ai également supprimé les utilisateurs/var/lib/jenkins/users
pour recommencer à zéro.la source
Pour le réinitialiser sans désactiver la sécurité si vous utilisez des autorisations matricielles (probablement facilement adaptables à d'autres méthodes de connexion):
config.xml
, définidisableSignup
surfalse
.config.xml
, dupliquez l'une des<permission>hudson.model.Hudson.Administer:username</permission>
lignes et remplacezusername
par le nouvel utilisateur.disableSignup
revenez àtrue
dansconfig.xml
.Nettoyage facultatif:
<permission>
ligne temporaire dansconfig.xml
.Aucun titre n'a été endommagé au cours de cette réponse.
la source
Pour désactiver la sécurité Jenkins en quelques étapes simples sous Linux, exécutez ces commandes:
Il supprimera
useSecurity
et lesauthorizationStrategy
lignes de votreconfig.xml
fichier de configuration racine et redémarrez votre Jenkins.Voir aussi: Désactiver la sécurité sur le site Web de Jenkins
Après avoir obtenu l'accès à Jenkins, vous pouvez réactiver la sécurité dans votre page Configurer la sécurité globale en choisissant le domaine de contrôle d'accès / sécurité . Après cela, n'oubliez pas de créer l'utilisateur administrateur .
la source
Sur la chance, vous vous verrouillez accidentellement hors de Jenkins en raison d'une erreur de permission, et vous n'avez pas accès côté serveur pour basculer vers l'utilisateur ou root jenkins ... Vous pouvez créer un travail dans Jenkins et l'ajouter au script shell:
Cliquez ensuite sur Build Now et redémarrez Jenkins (ou le serveur si vous en avez besoin!)
la source
ProjectMatrixAuthorization
. Lorsque je fais le changement et redémarre Jenkins, je vois une exception Java dans Jenkins-UI. Pour résoudre ce problème, j'ai également supprimé la ligne avecauthorizationStrategy
et c'était à nouveau correct. Jenkins l'a lu au prochain démarrage comme une balise vide.Nous pouvons réinitialiser le mot de passe tout en laissant la sécurité activée.
Le fichier config.xml dans / var / lib / Jenkins / users / admin / agit un peu comme le fichier / etc / shadow pour les systèmes Linux ou UNIX ou le fichier SAM dans Windows, dans le sens où il stocke le hachage du fichier mot de passe du compte.
Si vous devez réinitialiser le mot de passe sans vous connecter, vous pouvez modifier ce fichier et remplacer l'ancien hachage par un nouveau généré à partir de bcrypt:
Cela affichera votre hachage, avec le préfixe 2a, le préfixe correct pour les hachages Jenkins.
Maintenant, éditez le fichier config.xml:
Une fois que vous avez inséré le nouveau hachage, réinitialisez Jenkins:
(si vous êtes sur un système avec systemd):
Vous pouvez maintenant vous connecter et vous n'avez pas laissé votre système ouvert pendant une seconde.
la source
Copiez le mot de passe du fichier initialAdminPassword et collez-le dans Jenkins.
la source
Afin de supprimer la sécurité par défaut de jenkins dans le système d'exploitation Windows,
Vous pouvez parcourir le fichier Config.xml créé dans /users/{UserName}/.jenkins.
Dans ce fichier, vous pouvez changer le code de
À,
la source
1 Vérifiez d'abord l'emplacement si vous installez War ou Linux ou Windows en fonction de cela
par exemple en cas de guerre sous Linux et pour l'utilisateur administrateur
accédez à cette balise après #jbcrypt:
changer ce mot de passe en utilisant n'importe quel site Web pour le générateur de hachage bcrypt
assurez-vous qu'il commence par 2 $ car celui-ci utilise jenkens
la source
étape 1: allez dans le répertoire cd .jenkins / secrets puis vous obtiendrez un 'initialAdminPassword'.
étape 2: nano initialAdminPassword
vous obtiendrez un mot de passe
la source
changer le
<useSecurity>true</useSecurity>
pour<useSecurity>false</useSecurity>
ne sera pas suffisant, vous devez supprimer<authorizationStrategy>
et<securityRealm>
éléments aussi et redémarrez votre serveur jenkins en faisantsudo service jenkins restart
.rappelez-vous ceci, réglé
<usesecurity>
surfalse
seulement peut vous causer un problème, car ces instructions sont mentionnées dans leur documentation officielle ici .la source
Le moyen le plus simple est d'utiliser le psw administrateur pour vous connecter avec votre utilisateur administrateur:
sudo su -
xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
ctrl + v
sur la zone de saisie du mot de passe.Installez xclip si vous ne l'avez pas:
$ sudo apt-get install xclip
la source
En cas de Jenkins sur un conteneur géré par un Kubernetes POD est un peu plus complexe , car:
kubectl exec PODID --namespace=jenkins -it -- /bin/bash
vous permettra d'accéder directement au conteneur en cours d' exécution Jenkins, mais vous n'aurez pas accès root ,sudo
,vi
et de nombreuses commandes ne sont pas disponibles et donc une solution de contournement est nécessaire.Utilisez
kubectl describe pod [...]
pour trouver le nœud exécutant votre pod et l'ID du conteneur(docker://...)
SSH
dans le nœuddocker exec -ti -u root -- /bin/bash
pour accéder au conteneur avec des privilèges rootapt-get update
sudo apt-get install vim
La deuxième différence est que le fichier de configuration Jenkins est placé dans un chemin différent qui correspond au point de montage du volume persistant, c'est
/var/jenkins_home
-à- dire que cet emplacement pourrait changer à l'avenir, vérifiez qu'il fonctionnedf
.Désactivez ensuite la sécurité - changez true en false dans le
/var/jenkins_home/jenkins/config.xml
fichier.Il suffit maintenant de redémarrer le Jenkins, action qui fera mourir le conteneur et le Pod, il sera recréé en quelques secondes avec la configuration mise à jour (et toutes les chances comme vi, mise à jour effacée) grâce au volume persistant.
L'ensemble de la solution a été testé sur Google Kubernetes Engine. MISE À JOUR Notez que vous pouvez également exécuter
ps -aux
le mot de passe en texte brut est affiché même sans accès root.la source
Souvent, vous n'aurez pas l'autorisation de modifier le fichier config.xml.
La chose la plus simple serait de
config.xml
supprimer et de supprimer à l'aide de la commande sudo.Redémarrez les jenkins à l'aide de la commande
sudo /etc/init.d/jenkins restart
Cela désactivera toute la sécurité dans Jenkins et l'option de connexion disparaîtrait
la source
En utilisant bcrypt, vous pouvez résoudre ce problème. Étendre la réponse @Reem à quelqu'un qui essaie d'automatiser le processus en utilisant bash et python.
J'ai gardé un mot de passe en dur ici, mais il peut s'agir d'une entrée utilisateur en fonction des besoins. Assurez-vous également d'ajouter que
sleep
sinon toute autre commande tournant autour de Jenkins échouera.la source
Pour désactiver très simplement la sécurité et l'assistant de démarrage, utilisez la propriété JAVA:
La bonne chose à ce sujet est que vous pouvez l'utiliser dans une image Docker de telle sorte que votre conteneur démarre toujours immédiatement sans écran de connexion:
Notez que, comme mentionné par d'autres, le Jenkins config.xml est dans
/var/jenkins_home
l'image, mais l'utilisationsed
pour le modifier à partir du Dockerfile échoue, car (vraisemblablement) le config.xml n'existe pas jusqu'au démarrage du serveur.la source
J'ai eu un problème similaire, et suite à la réponse d'ArtB,
J'ai trouvé que mon utilisateur n'avait pas les configurations appropriées. donc ce que j'ai fait:
Remarque: la modification manuelle de ces fichiers XML est risquée. Faites-le à vos risques et périls. Comme j'étais déjà en lock-out, je n'avais pas grand-chose à perdre. AFAIK Dans le pire des cas, j'aurais supprimé le fichier ~ / .jenkins / config.xml comme mentionné précédemment.
**> 1. ssh à la machine jenkins
sous
ajouter:
Maintenant, vous pouvez aller dans différentes directions. Par exemple, j'ai eu l'intégration de github oauth, donc j'aurais pu essayer de remplacer l'autorisationStrategy par quelque chose comme ci-dessous:
Remarque: cela a fonctionné dans mon cas car j'avais un plugin github oauth spécifique qui était déjà configuré. C'est donc plus risqué que la solution précédente.
la source
Modifiez le fichier $ JENKINS_HOME / config.xml et changez la configuration de sécurité avec ceci:
Après cela, redémarrez Jenkins.
la source
Pour celui qui utilise macOS, la nouvelle version peut simplement être installée par homebrew. donc pour se reposer, cette ligne de commande doit utiliser:
la source