본문 바로가기
📚 개발 공부

[DevOps] Jenkins 암호화된 패스워드 복호화하는 방법

by cheonvi 2024. 1. 15.

우연히 검색을 하다가 알게된  암호화된 패스워드 데이터를 복원하는 방법에 관련하여 설명하겠습니다. 

젠킨스 구설설정에서 간혹 패스워드 입력하는 부분이 있는데, 그 항목을 입력 후 저장하게 되면 암호화 되어 구성파일에 저장이 됩니다. 

 sonarqube 구성설정을 하게 되면 secretPass항목이 암호화 되어 파일에 저장이 되는 것을 아래 처럼 확인 할 수 있습니다.

<?xml version='1.1' encoding='UTF-8'?>
<org.quality.gates.jenkins.plugin.GlobalConfig plugin="sonar-quality-gates@1.3.3-SNAPSHOT">
  <listOfGlobalConfigData>
    <org.quality.gates.jenkins.plugin.GlobalConfigDataForSonarInstance>
      <name>sonarqube-8.9.6</name>
      <username>user</username>
      <sonarUrl>http://sonarqube.cicd.svc.cluster.local</sonarUrl>
      <secretPass>{AQAAABAAAAAQlbcN0UMuhgKoKAkASWyo7j8A9O/rPmLtSEdC/XO62sc=}</secretPass>
      <timeToWait>0</timeToWait>
      <maxWaitTime>0</maxWaitTime>
    </org.quality.gates.jenkins.plugin.GlobalConfigDataForSonarInstance>
  </listOfGlobalConfigData>
  <globalConfigurationService>
    <listOfGlobalConfigInstances reference="../../listOfGlobalConfigData"/>
  </globalConfigurationService>
</org.quality.gates.jenkins.plugin.GlobalConfig>

 

이 암호화된 항목을 복호화하는 방법은 젠킨스 프로그램에서 가능합니다. 

설치된 젠킨스 웹 서버 주소에 /script 라는 패스를 추가하여 접속합니다. 

 

http://젠킨스서버IP 또는 도메인:31178/script

 

스크립트 콘솔창

 

위의 화면 처럼 로그인을 하게 되면 Script Console 화면으로 이동하게 됩니다. 이 콘솔 창에 암호화된 항목을 명령어를 사용하여 복호화하게 되면 됩니다. 

 

복호화 명령어

hudson.util.Secret.decrypt("{암호화된 문자}")

 

복호화 명령어를 스크립트 콘솔창에 입력 후

println hudson.util.Secret.decrypt("{AQAAABAAAAAQlbcN0UMuhgKoKAkASWyo7j8A9O/rPmLtSEdC/XO62sc=}");

Run 버튼을 클릭하게 되면 암호화된 문자가 복호화 되어 결과 값이 나오게 됩니다. 아래 그림에는 결과 값을 안보이게 표시를 하게 된점 양해 바랍니다. 

 

스크립트 콘솔창에 암호화된 문자를  복호화