Jenkins中存储的加密密钥在哪里?

时间:2016-07-19 17:49:58

标签: encryption jenkins migration credentials

我正在尝试将凭据从一个Jenkins迁移到另一个但是用户名/密码在$ {JENKINS_HOME} /credentials.xml中进行哈希

我发现了这个answer,但问题是它没有解释为了成功迁移凭据,有人会在哪里找到加密密钥。

非常感谢任何帮助!

编辑:更多信息..我的$ {JENKINS_HOME}位于一个单独的卷上,我将其分离并重新附加到新VM上,但它仍无法与我一起使用。

2 个答案:

答案 0 :(得分:21)

我发现this analysis非常有帮助。简而言之:

  

Jenkins使用master.key加密密钥hudson.util.Secret。   然后,此密钥用于加密credentials.xml中的密码。

当我需要使用一些默认密码引导新的Jenkins实例时,我使用包含

的模板目录树
  • secrets/hudson.util.Secret
  • secrets/master.key

这很好用。

答案 1 :(得分:1)

关于JENKINS迁移,我最近遇到了这种情况,经过几次测试,我的解决方法为我工作。

这是我所做的:

  1. 我将文件和文件夹从Source Jenkins移至目标:

    • $ JENKINS_HOME / secret.key
    • $ JENKINS_HOME / secrets
    • $ JENKINS-HOME /用户
    • $ JENKINS_HOME / credentials.xml
  2. 请注意:移动这些文件不是必需的

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

否则,启动Jenkins后,您将看到以下错误:

java.lang.AssertionError: InstanceIdentity is missing its singleton
  1. Jenkins将自动生成这两个文件。一旦开始,您应该会很好。