[Jenkins] Jenkins root 계정 패스워드 복구

Jenkins root 계정의 패스워드를 까먹었을 경우 복구하는 방법을 알아봅시다.

 

Jenkins 설정 파일 (config.xml) 파일 수정

Jenkins의 설정 파일인 config.xml 파일을 수정하여 잠시 로그인 없이도 관리 페이지에 접근할 수 있도록 설정이 가능합니다.

vi 에디터 등을 사용하여 Jenkins Home Dir 경로에 생성되어 있는 config.xml 파일의 아래와 같이 useSecurity 항목을 true에서 false로 변경합니다.

vi /{{Jenkins Home Dir}}/config.xml
<useSecurity>true</useSecurity>

 

config.xml 파일 내용(예시)
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
  <disabledAdministrativeMonitors/>
  <version>2.387.1</version>
  <numExecutors>2</numExecutors>
  <mode>NORMAL</mode>
  <useSecurity>false</useSecurity>
  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
  </authorizationStrategy>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>true</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  <disableRememberMe>false</disableRememberMe>
  <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
  <workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULL_NAME}</workspaceDir>
  <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
  <jdks/>
  <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
  <myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
  <clouds/>
  <scmCheckoutRetryCount>0</scmCheckoutRetryCount>
  <views>
    <hudson.model.AllView>
      <owner class="hudson" reference="../../.."/>
      <name>all</name>
      <filterExecutors>false</filterExecutors>
      <filterQueue>false</filterQueue>
      <properties class="hudson.model.View$PropertyList"/>
    </hudson.model.AllView>
  </views>
  <primaryView>all</primaryView>
  <slaveAgentPort>50000</slaveAgentPort>
  <label></label>
  <crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
    <excludeClientIPFromCrumb>false</excludeClientIPFromCrumb>
  </crumbIssuer>
  <nodeProperties/>
  <globalNodeProperties/>
  <nodeRenameMigrationNeeded>false</nodeRenameMigrationNeeded>
</hudson>

 

Jenkins 재시작

Jenkins의 설정 파일인 config.xml파일 수정 후 Jenkins를 재시작해야지만 설정이 적용되므로 Jenkins를 재시작해줍니다.
저는 Docker 환경에서 Jenkins를 실행했으므로 Jenkins 컨테이너를 재시작하겠습니다.

# docker restart server-jenkins
server-jenkins

# docker ps -a | grep server-jenkins
2dbe6e4b3f7b   jenkins/jenkins:lts-jdk11                                         "/usr/bin/tini -- /u…"   2 days ago    Up 12 minutes                   0.0.0.0:50000->50000/tcp, 0.0.0.0:8088->8080/tcp   server-jenkins

 

Jenkins 관리 페이지 접속 및 패스워드 복구

Jenkins 관리 페이지 접속 시 아래와 같이 사용자 이름 및 암호를 입력할 필요 없이 바로 관리자 페이지로 접속됩니다.

 

패스워드 복구를 위해 Jenkins -> Security -> Configure Global Securiy 메뉴를 접속합니다.

 

기존에 None 으로 설정되어 있었던 Security Realm 설정을 Jenkins' own user database 로 변경하고 사용자의 가입 허용을 체크하고 Save 버튼을 눌러 저장합니다.

 

설정 저장이 완료되면 기존에 없었던 Security -> Manage Users 메뉴가 생성되며 해당 메뉴를 접속합니다.

 

패스워드를 복구하고자 하는 계정의 톱니바퀴 버튼을 클릭하여 패스워드 변경 화면에 접속합니다.

 

변경하고자 하는 패스워드를 입력 후 Save 버튼을 눌러 저장합니다.

 

저장 완료 후 다시 로그인 버튼을 클릭하여 패스워드를 복구한 계정으로 접속하여 사용 가능합니다.

 

Jenkins root 계정 패스워드 복구하는 작업을 완료하였습니다...! 끝...!

 

 

 

[Reference]

+ Recent posts