Comment réinitialiser les paramètres de sécurité Jenkins à partir de la ligne de commande?

y a-t-il un moyen de réinitialiser tout (ou simplement désactiver les paramètres de sécurité) de la ligne de commande sans utilisateur/mot de passe car j'ai réussi à me verrouiller complètement hors de Jenkins ?

169
demandé sur Zeromus 2011-08-09 01:28:13

19 réponses

la solution la plus simple consiste à désactiver complètement la sécurité - remplacer true par false dans le fichier /var/lib/jenkins/config.xml .

<useSecurity>true</useSecurity>

puis redémarrez Jenkins, par

sudo service jenkins restart

puis allez dans le panneau d'administration et réglez tout à nouveau.

201
répondu Nowaker 2018-01-29 23:24:52

Une autre façon serait de modifier manuellement le fichier de configuration pour l'utilisateur (par exemple, /var/lib/jenkins/utilisateurs/nom d'utilisateur/config.xml) et mettre à jour le contenu de passwordHash :

<passwordHash>#jbcrypt:a$razd3L1aXndFfBNHO95aj.IVrFydsxkcQCcLmujmFQzll3hcUrY7S</passwordHash>

une fois que vous avez fait cela, redémarrez Jenkins et connectez-vous en utilisant ce mot de passe:

test
134
répondu Arseny 2014-05-09 12:35:00

j'ai trouvé le fichier en question dans /var/lib/jenkins appelé config.xml, la modification qui a résolu le problème.

44
répondu ryanzec 2011-08-09 12:51:38

l'élément <passwordHash> dans users/<username>/config.xml acceptera les données du format

salt:sha256("password{salt}")

donc, si votre sel est bar et votre mot de passe est foo alors vous pouvez produire le SHA256 comme ceci:

echo -n 'foo{bar}' | sha256sum

Vous devriez obtenir 7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349 comme résultat. Prenez le hash et mettez-le avec le sel dans <passwordHash> :

<passwordHash>bar:7f128793bc057556756f4195fb72cdc5bd8c5a74dee655a6bfb59b4a4c4f4349</passwordHash>

redémarrez Jenkins, puis essayez de vous connecter avec mot de passe foo . Puis réinitialiser votre mot de passe à autre chose. (Jenkins utilise bcrypt par défaut, et un tour de SHA256 n'est pas une façon sûre de stocker les mots de passe. Vous obtiendrez un hachage bcrypt stocké lorsque vous réinitialiserez votre mot de passe.)

30
répondu uckelman 2014-06-03 10:39:25

El Capitan config.xml ne peut pas être trouvé à

/ var / lib / jenkins /

à Sa disposition

~/.jenkins 151970920"

ensuite, comme d'autres mentionnés, ouvrez la configuration .xml de fichiers et d'apporter les modifications suivantes

  • remplacer <useSecurity>true</useSecurity> avec <useSecurity>false</useSecurity>

  • Supprimer <authorizationStrategy> et <securityRealm>

  • Enregistrer et redémarrer le jenkins( sudo service jenkins redémarrer )

21
répondu Durai Amuthan.H 2016-03-08 14:18:03

la réponse sur la modification était correcte. Pourtant, je pense qu'il faut mentionner que /var/lib/jenkins/config.xml ressemble à cela si vous avez activé "Project-based Matrix Authorization Strategy". Supprimer /var/lib/jenkins/config.xml et redémarrer jenkins fait aussi l'affaire. J'ai également supprimé les utilisateurs dans /var/lib/jenkins/users pour commencer à partir de zéro.

<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
    <permission>hudson.model.Computer.Configure:jenkins-admin</permission>
    <permission>hudson.model.Computer.Connect:jenkins-admin</permission>
    <permission>hudson.model.Computer.Create:jenkins-admin</permission>
    <permission>hudson.model.Computer.Delete:jenkins-admin</permission>
    <permission>hudson.model.Computer.Disconnect:jenkins-admin</permission>
    <!-- if this is missing for your user and it is the only one, bad luck -->
    <permission>hudson.model.Hudson.Administer:jenkins-admin</permission>
    <permission>hudson.model.Hudson.Read:jenkins-admin</permission>
    <permission>hudson.model.Hudson.RunScripts:jenkins-admin</permission>
    <permission>hudson.model.Item.Build:jenkins-admin</permission>
    <permission>hudson.model.Item.Cancel:jenkins-admin</permission>
    <permission>hudson.model.Item.Configure:jenkins-admin</permission>
    <permission>hudson.model.Item.Create:jenkins-admin</permission>
    <permission>hudson.model.Item.Delete:jenkins-admin</permission>
    <permission>hudson.model.Item.Discover:jenkins-admin</permission>
    <permission>hudson.model.Item.Read:jenkins-admin</permission>
    <permission>hudson.model.Item.Workspace:jenkins-admin</permission>
    <permission>hudson.model.View.Configure:jenkins-admin</permission>
    <permission>hudson.model.View.Create:jenkins-admin</permission>
    <permission>hudson.model.View.Delete:jenkins-admin</permission>
    <permission>hudson.model.View.Read:jenkins-admin</permission>
  </authorizationStrategy>
16
répondu user637338 2013-07-16 18:25:40

pour le réinitialiser sans désactiver la sécurité si vous utilisez des permissions matricielles (probablement facilement adaptables à d'autres méthodes de connexion):

  1. Dans config.xml , disableSignup à false .
  2. Redémarrer Jenkins.
  3. allez à la page Web de Jenkins et inscrivez-vous avec un nouvel utilisateur .
  4. dans config.xml , dupliquer une des lignes <permission>hudson.model.Hudson.Administer:username</permission> et remplacer username par le nouvel utilisateur.
  5. si c'est un serveur privé, mettez disableSignup retour à true dans config.xml .
  6. Redémarrer Jenkins.
  7. aller à la page Web de Jenkins et se connecter comme le nouvel utilisateur .
  8. réinitialise le mot de passe de l'utilisateur original.
  9. se Connecter comme l'utilisateur d'origine.

Option de nettoyage:

  1. Supprimer le nouvel utilisateur.
  2. supprimer la ligne temporaire <permission> dans config.xml .

aucun titre n'a été lésé au cours de cette réponse.

14
répondu l0b0 2014-01-11 14:02:40

pour désactiver la sécurité Jenkins par étapes simples dans Linux, exécutez ces commandes:

sudo ex +g/useSecurity/d +g/authorizationStrategy/d -scwq /var/lib/jenkins/config.xml
sudo /etc/init.d/jenkins restart

il supprimera les lignes useSecurity et authorizationStrategy de votre fichier de configuration racine config.xml et redémarrera votre Jenkins.

Voir aussi: Désactiver la sécurité à Jenkins site


après avoir obtenu l'accès à Jenkins, vous pouvez réactiver la sécurité dans votre Configurer la page "Sécurité globale En choisissant la page contrôle D'accès/domaine de la sécurité . Après que n'oubliez pas de créer l'utilisateur administrateur .

13
répondu kenorb 2017-11-15 11:34:53

sur le offchance vous vous bloquez accidentellement hors de Jenkins en raison d'une erreur de permission, et vous n'avez pas d'accès côté serveur pour passer à l'utilisateur ou à la racine de jenkins... Vous pouvez faire un travail dans Jenkins et ajouter ceci au script Shell:

sed -i 's/<useSecurity>true/<useSecurity>false/' ~/config.xml

puis cliquez sur Build Now et redémarrez Jenkins (ou le serveur si vous en avez besoin!)

11
répondu Nick 2015-03-06 21:57:26
\.jenkins\secrets\initialAdminPassword

Copiez le mot de passe du fichier initial et collez-le dans les Jenkins.

4
répondu Shivam 2017-01-18 22:12:25

afin de supprimer la sécurité par défaut pour jenkins dans Windows OS,

vous pouvez parcourir le fichier de configuration.xml créé dans /utilisateurs/{UserName}/.Jenkins.

dans ce fichier vous pouvez changer le code de

<useSecurity>true</useSecurity>

à,

<useSecurity>false</useSecurity>
4
répondu Krutik 2017-06-14 08:13:22

changer le <useSecurity>true</useSecurity> en <useSecurity>false</useSecurity> ne sera pas suffisant, vous devriez supprimer <authorizationStrategy> et <securityRealm> éléments trop et redémarrer votre serveur jenkins en faisant sudo service jenkins restart .

rappelez-vous ceci, mettez <usesecurity> à false seulement peut causer un problème pour vous, puisque ces instructions sont mentionnées dans la documentation officielle ici .

2
répondu Musharraf Al-tamimi 2014-12-15 19:12:09

la manière simple de sortir de ceci est d'utiliser le psw administrateur pour se connecter avec votre utilisateur administrateur:

  • changer pour root user: sudo su -
  • copier le mot de passe: xclip -sel clip < /var/lib/jenkins/secrets/initialAdminPassword
  • connectez-vous avec l'administrateur et appuyez sur ctrl + v sur la boîte de saisie du mot de passe.

installez xclip si vous ne l'avez pas:

  • $ sudo apt-get install xclip
1
répondu Thomas Modeneis 2017-03-23 12:40:24

Jenkins over KUBENETES and Docker

dans le cas de Jenkins sur un conteneur géré par un Kubernetes POD est un peu plus complexe depuis: kubectl exec PODID --namespace=jenkins -it -- /bin/bash voulez-vous permettre d'accéder directement au conteneur courant Jenkins, mais vous n'aurez pas d'accès racine , sudo , vi et beaucoup de commandes ne sont pas disponibles et donc une solution est nécessaire.

utilisez kubectl describe pod [...] pour trouver le noeud qui exécute votre Pod et le conteneur ID (docker://...)

  • SSH dans le noeud
  • exécuter docker exec -ti -u root -- /bin/bash pour accéder au conteneur avec les privilèges " Root
  • apt-get update
  • sudo apt-get install vim

la seconde différence est que la configuration de Jenkins fichier sont placés dans un chemin différent qui correspond au point de montage du volume persistant, i.e. /var/jenkins_home , cet emplacement pourrait changer dans le futur, Vérifiez qu'il en cours d'exécution df .

puis désactiver la sécurité - changer vrai à faux dans le fichier /var/jenkins_home/jenkins/config.xml .

<useSecurity>false</useSecurity>

maintenant il suffit de redémarrer le Jenkins, action qui causera la mort du container et du Pod, il sera créé à nouveau 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. UPDATE Notez que vous pouvez aussi bien lancer ps -aux le mot de passe en texte clair est affiché même sans accès root.

jenkins@jenkins-87c47bbb8-g87nw:/$ps -aux
[...]
jenkins [..] -jar /usr/share/jenkins/jenkins.war --argumentsRealm.passwd.jenkins=password --argumentsRealm.roles.jenkins=admin
[...]
1
répondu paolo gallina 2018-02-23 12:18:08

1 Vérifiez d'abord l'emplacement si vous installez war ou Linux ou windows basé sur ce

par exemple si la guerre sous Linux et pour l'utilisateur administrateur

/home/"User_NAME"/.jenkins/users/admin / config.xml

passez à cette balise après #jbcrypt:

<passwordHash>#jbcrypt:aDzCGLQr2oYXtcot4o0rB.wYi5kth6e45tcPpRFsuYqzLZfn1pcWK</passwordHash>

modifier ce mot de passe en utilisant utiliser n'importe quel site web pour générateur de hachage bcrypt

https://www.dailycred.com/article/bcrypt-calculator

assurez-vous qu'il commencez avec $2a cause ce un jenkens utilise

1
répondu Ismail 2018-05-05 08:25:32

nous pouvons réinitialiser le mot de passe tout en laissant la sécurité allumée.

La config.fichier xml dans / var/lib/Jenkins/users/ admin /agit en quelque sorte comme le fichier/etc / shadow Linux ou les systèmes de type UNIX ou le fichier SAM dans Windows, dans le sens où il stocke le hachage du mot de passe du compte.

si vous devez réinitialiser le mot de passe sans vous connecter, vous pouvez éditer ce fichier et remplacer l'ancien hachage par un nouveau généré à partir de bcrypt:

$ pip install bcrypt
$ python
>>> import bcrypt
>>> bcrypt.hashpw("yourpassword", bcrypt.gensalt(rounds=10, prefix=b"2a"))
'YOUR_HASH'

cela affichera votre hash, avec le préfixe 2a, le préfixe correct pour les hash Jenkins.

maintenant, éditez la config.fichier xml:

...
<passwordHash>#jbcrypt:REPLACE_THIS</passwordHash>
...

une fois que vous avez inséré le nouveau hachage, réinitialisez Jenkins:

(si vous êtes sur un système avec systemd):

sudo systemctl restart Jenkins

vous pouvez maintenant vous connecter, et vous n'avez pas laissé votre système ouvert une seconde.

1
répondu Reem 2018-07-10 00:09:29

étape 1 : allez dans le répertoire du cd .jenkins / secrets vous obtiendrez alors un "mot d'ordre initial".

step-2: nano initialAdminPassword

vous obtiendrez un mot de passe

1
répondu Shaik Zeeshan 2018-09-07 05:12:28

j'ai eu un problème similaire, et à la suite de la réponse de ArtB,

j'ai trouvé que mon utilisateur n'avait pas les configurations appropriées. alors ce que j'ai fait:

Note: modifier manuellement de tels fichiers XML est risqué. Le faire à vos propres risques. Comme j'étais déjà enfermé, je n'avais pas grand chose à perdre. Dans le pire des cas, j'aurais supprimé le ~/.jenkins / config.fichier xml comme pré-post mentionné.

* * > 1. ssh à l' jenkins machine

  1. cd ~/.jenkins (je suppose que certaines des installations de la mettre sous /var/lib/jenkins/config.xml, mais pas dans mon cas )
  2. vi config.xml, et sous la balise authorizationStrategy xml, ajouter la section ci-dessous (vient d'utiliser mon nom d'utilisateur au lieu de "put-your-username")
  3. redémarrez jenkins. dans mon cas, en tant que root service tomcat7 arrêter; ; service tomcat7 démarrer
  4. essayez de connectez-vous à nouveau. (a travaillé pour moi)**

en vertu de

ajouter:

<permission>hudson.model.Computer.Build:put-your-username</permission>
<permission>hudson.model.Computer.Configure:put-your-username</permission>
<permission>hudson.model.Computer.Connect:put-your-username</permission>
<permission>hudson.model.Computer.Create:put-your-username</permission>
<permission>hudson.model.Computer.Delete:put-your-username</permission>
<permission>hudson.model.Computer.Disconnect:put-your-username</permission>
<permission>hudson.model.Hudson.Administer:put-your-username</permission>
<permission>hudson.model.Hudson.ConfigureUpdateCenter:put-your-username</permission>
<permission>hudson.model.Hudson.Read:put-your-username</permission>
<permission>hudson.model.Hudson.RunScripts:put-your-username</permission>
<permission>hudson.model.Hudson.UploadPlugins:put-your-username</permission>
<permission>hudson.model.Item.Build:put-your-username</permission>
<permission>hudson.model.Item.Cancel:put-your-username</permission>
<permission>hudson.model.Item.Configure:put-your-username</permission>
<permission>hudson.model.Item.Create:put-your-username</permission>
<permission>hudson.model.Item.Delete:put-your-username</permission>
<permission>hudson.model.Item.Discover:put-your-username</permission>
<permission>hudson.model.Item.Read:put-your-username</permission>
<permission>hudson.model.Item.Workspace:put-your-username</permission>
<permission>hudson.model.Run.Delete:put-your-username</permission>
<permission>hudson.model.Run.Update:put-your-username</permission>
<permission>hudson.model.View.Configure:put-your-username</permission>
<permission>hudson.model.View.Create:put-your-username</permission>
<permission>hudson.model.View.Delete:put-your-username</permission>
<permission>hudson.model.View.Read:put-your-username</permission>
<permission>hudson.scm.SCM.Tag:put-your-username</permission>

Maintenant, vous pouvez aller dans différentes directions. Par exemple, j'ai eu l'intégration de githuboauth, donc j'aurais pu essayer de remplacer la stratégie d'autorisation par quelque chose comme ci-dessous:

Note:, cela a fonctionné dans mon cas car j'avais un plugin spécifique github oauth qui était déjà configuré. Donc, il est plus risqué que la solution précédente.

  <authorizationStrategy class="org.jenkinsci.plugins.GithubAuthorizationStrategy" plugin="github-oauth@0.14">
    <rootACL>
      <organizationNameList class="linked-list">
        <string></string>
      </organizationNameList>
      <adminUserNameList class="linked-list">
        <string>put-your-username</string>
        <string>username2</string>
        <string>username3</string>
        <string>username_4_etc_put_username_that_will_become_administrator</string>
      </adminUserNameList>
      <authenticatedUserReadPermission>true</authenticatedUserReadPermission>
      <allowGithubWebHookPermission>false</allowGithubWebHookPermission>
      <allowCcTrayPermission>false</allowCcTrayPermission>
      <allowAnonymousReadPermission>false</allowAnonymousReadPermission>
    </rootACL>
  </authorizationStrategy>
0
répondu drordk 2013-10-06 12:27:10

édite le fichier $ JENKINS_HOME / config.xml et modifier la configuration de sécurité avec ceci:

<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>

après avoir redémarré Jenkins.

0
répondu richarbernal 2013-10-17 08:16:45