Jenkins 中存储的加密密钥在哪里?
Where's the encryption key stored in Jenkins?
我正在尝试将凭据从一个 Jenkins 迁移到另一个,但 usernames/passwords 在 ${JENKINS_HOME}/credentials.xml
中进行了哈希处理
我找到了这个 ,但问题是它没有说明人们会在哪里找到加密密钥才能成功迁移凭据。
非常感谢任何帮助!
编辑:更多信息.. 我的 ${JENKINS_HOME} 位于一个单独的卷上,我将其分离并重新连接到新 VM,但它仍然不适合我。
我发现 this analysis (link is dead as of June 2020, archived here) 非常有帮助。简而言之:
Jenkins uses the master.key to encrypt the key hudson.util.Secret.
This key is then used to encrypt the password in credentials.xml.
当我需要 bootstrap 使用一些默认密码的新 Jenkins 实例时,我使用包含
的模板目录树
secrets/hudson.util.Secret
和
secrets/master.key
这很好用。
关于 JENKINS 迁移,我最近遇到了这种情况,经过几次测试后,我的解决方法对我有用。
这是我所做的:
我将以下文件和文件夹从 Source Jenkins 移动到目标:
- $JENKINS_HOME/secret.key
- $JENKINS_HOME/secrets
- $JENKINS-HOME/users
- $JENKINS_HOME/credentials.xml
请注意:这些文件不需要移动:
- $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
- Jenkins 会自动生成这两个文件。一旦开始,你应该很好。
我正在尝试将凭据从一个 Jenkins 迁移到另一个,但 usernames/passwords 在 ${JENKINS_HOME}/credentials.xml
中进行了哈希处理我找到了这个
非常感谢任何帮助!
编辑:更多信息.. 我的 ${JENKINS_HOME} 位于一个单独的卷上,我将其分离并重新连接到新 VM,但它仍然不适合我。
我发现 this analysis (link is dead as of June 2020, archived here) 非常有帮助。简而言之:
Jenkins uses the master.key to encrypt the key hudson.util.Secret. This key is then used to encrypt the password in credentials.xml.
当我需要 bootstrap 使用一些默认密码的新 Jenkins 实例时,我使用包含
的模板目录树secrets/hudson.util.Secret
和secrets/master.key
这很好用。
关于 JENKINS 迁移,我最近遇到了这种情况,经过几次测试后,我的解决方法对我有用。
这是我所做的:
我将以下文件和文件夹从 Source Jenkins 移动到目标:
- $JENKINS_HOME/secret.key
- $JENKINS_HOME/secrets
- $JENKINS-HOME/users
- $JENKINS_HOME/credentials.xml
请注意:这些文件不需要移动:
- $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
- Jenkins 会自动生成这两个文件。一旦开始,你应该很好。