在 Ubuntu 上重置 Jenkins 管理员密码,常见有几种方法,按安全程度和操作复杂度从简单到“暴力”排列如下:
Jenkins 用户数据通常在:
/var/lib/jenkins/users/
查看用户目录:
ls /var/lib/jenkins/users/
例如:
admin_1234567890/
config.xmlsudo vim /var/lib/jenkins/users/admin_xxxx/config.xml
找到 <passwordHash> 字段,类似:
<passwordHash>#jbcrypt:$2a$10$......</passwordHash>
使用 Jenkins 自带的工具或在线 bcrypt:
sudo apt install python3-bcrypt -y
python3 -c "import bcrypt; print(bcrypt.hashpw(b'admin123', bcrypt.gensalt()).decode())"
复制输出的 hash,替换原 <passwordHash> 内容(保留 #jbcrypt: 前缀)。
sudo systemctl restart jenkins
登录:
sudo vim /var/lib/jenkins/config.xml
将:
<useSecurity>true</useSecurity>
改为:
<useSecurity>false</useSecurity>
sudo systemctl restart jenkins
⚠️ 完成后一定要重新开启安全
适合完全进不去 Jenkins 的情况,可写 Groovy 脚本:
sudo vim /var/lib/jenkins/init.groovy.d/init.groovy
内容示例:
import jenkins.model.*
import hudson.security.*
def env = System.getenv()
def jenkins = Jenkins.getInstance()
def user = new User('admin')
user.setPassword('admin123')
jenkins.save()
重启 Jenkins 后删除该脚本。
sudo journalctl -u jenkins -n 100
sudo chown -R jenkins:jenkins /var/lib/jenkins
如果你告诉我:
我可以给你更精确的步骤。