找了半天, 从页面上没找着修改admin超级管理员密码的地方,只能从配置文件着手了:

Jenkins 配置文件存放在用户目录下.jenkins中

例如root用户在路径  /root/.jenkins/

其他用户在 /home/user/.jenkins/

cd  /root/.jenkins/

在 .jenkins目录下有一个users目录,存放用户信息

cd users

user目录下找到你的帐号目录,例如你的登录帐号是admin,那么目录就是admin

cd admin

该目录下有个config.xml文件

 

passwordHash 字段存放的是加密过后的密码

Jenkins的密码采用的是Java加解密工具 jBCrypt,我也是第一次接触到这种加密方式,实在被他惊叹到了!这种加密方式每次加密同一个明文竟然都是得到不一样的结果,那他又是通过怎样的方式来解密的呢?原来,他拿着用户的明文,和存储的密文去重新生成一串密文去判断。总结如下,它有以下特点:

关于bcrypt:

1、bcrypt是不可逆的加密算法,无法通过解密密文得到明文。

2、bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。

 

下面, 用python生成加密后的密码:

修改
#jbcrypt:$2a$12$4OqwS9bCDIh3YHsYo5ApJeEqedGF5ehgK1Ei0T1F2E6p6J1c8EhTu

#jbcrypt:$2a$12$ldO4lUKecFxyMTgSntrVNuyaeRBIhN1onQvpXf2fQ1asnV6mkESBi

最后重启jenkins

 

注:

在python2里测试生成加密字符串的过程没有问题,但是在python3会报如下错误:

查找了下原因,是因为python3里,字符串有strbytes两种形态,所以需要改成

另外,bcrypt有多种标准,我们需要的是2a,所以还要改成:

这样就得到正确结果了。

Categories: 未分类

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *