Jenkins系列-Jenkins忘记密码的修复方法
找回 admin 用户的密码后,可以登录系统修改其他用户的密码。
1. Jenkins 目录结构
Jenkins 没有使用数据库,所有的信息都保存在 JENKINS_HOME 目录下的文件中。其中 JENKINS_HOME 目录:
Linux 下通常是 /var/lib/jenkins 或 /var/jenkins_home
Windows 下通常是 C:\Users\[用户名]\.jenkins
通过 Docker 安装时,JENKINS_HOME 目录和启动容器时指定的卷相关。例如 -v /home/demo/jenkins:/var/jenkins_home 参数中,JENKINS_HOME 目录是 Docker 宿主机的 /home/demo/jenkins 目录。
2. admin 密码密文
Jenkins 中所有的用户信息都保存在 JENKINS_HOME 目录下的 users 目录中,每个用户对应一个目录。对应 admin 用户,可以查看 users/admin/config.xml 文件,其中 passwordHash 字段中 #jbcrypt: 后面的部分就是密码经过 hash 加密后的密文。
我们可以将其修改为
#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
上面这个段加密的是123456,如果不想有错误发现,建议上面disableSignup的配置改成false先试下。
然后我们保存文件,重启jenkins使用admin/123456登录即可。
3. admin 密码明文
JENKINS_HOME 目录中的 /secrets/initialAdminPassword 文件明文保存 admin 用户的密码,直接查看即可。下面例子中的 JENKINS_HOME 需要替换为你实际的目录。
cat JENKINS_HOME/secrets/initialAdminPassword