web-dev-qa-db-fra.com

Où est la clé de cryptage stockée dans Jenkins?

J'essaie de migrer les informations d'identification d'un Jenkins à un autre, mais les noms d'utilisateur/mots de passe sont hachés dans $ {JENKINS_HOME} /credentials.xml

J'ai trouvé cela réponse , mais le problème est qu'il n'explique pas où quelqu'un trouverait la clé de cryptage afin de réussir la migration des informations d'identification.

Toute aide est grandement appréciée!

[~ # ~] modifier [~ # ~] : Plus d'informations .. mon $ {JENKINS_HOME} est sur un volume séparé que je détache et retire attachez-vous à la nouvelle machine virtuelle, et cela ne fonctionne toujours pas avec moi.

18
Fadi

J'ai trouvé cette analyse très utile. En un mot:

Jenkins utilise le master.key pour crypter la clé hudson.util.Secret. Cette clé est ensuite utilisée pour crypter le mot de passe dans credentials.xml.

Lorsque j'ai besoin de bootstrap nouvelles instances Jenkins avec des mots de passe par défaut, j'utilise une arborescence de répertoires de modèles qui contient

  • secrets/hudson.util.Secret et
  • secrets/master.key

Cela fonctionne bien.

26
Alex O

En ce qui concerne la migration JENKINS, j'ai récemment rencontré cette situation et après quelques tests, ma solution de contournement a fonctionné pour moi.

Voici ce que j'ai fait:

  1. J'ai déplacé ci-dessous les fichiers et les dossiers de Source Jenkins pour cibler:

    • $ JENKINS_HOME/secret.key
    • $ JENKINS_HOME/secrets
    • $ JENKINS-HOME/utilisateurs
    • $ JENKINS_HOME/credentials.xml
  2. Veuillez noter: Ces fichiers sont non requis pour se déplacer:

    • $ JENKINS_HOME/identity.key.enc
    • $ JENKINS_HOME/secrets/org.jenkinsci.main.modules.instance_identity.InstanceIdentity.KEY

sinon, vous verrez une erreur ci-dessous après le démarrage de Jenkins:

Java.lang.AssertionError: InstanceIdentity is missing its singleton
  1. Jenkins générera automatiquement ces deux fichiers. Une fois commencé, vous devriez être bon.
4
Ashish K Srivastava