1. 程式人生 > >Jenkins系列-Jenkins忘記密碼的修復方法

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