maven repository 계정 정보 암호화하기

artifact 를 deploy 할때 repository 정보를 기술해야 하는데 plain text 로 암호를 쓰면 보안상의 문제가 발생할 수 있으므로 다음 절차에 따라 password 를 암호화해서 사용하자.


Master Password 생성

  1. mvn --encrypt-master-password <password>
  2. 다음과 같이 마스터 암호가 표시된다.

    {jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
  3. 위 암호를 ~/.m2/settings-security.xml 에 다음 형식으로 붙여 넣는다.

    <settingsSecurity>
      <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
    </settingsSecurity>

     


 

Server 의 password 암호화

  1. 서버의 password 를 암호화하기 위해 다음 명령 실행

    mvn --encrypt-password <password>
  2. 암호화된 password 가 생성

    {COQLCE6DU6GtcS5P=}
  3. 위 암호를 settings.xml 의 server  항목의 <password/> 에 복사

    <settings>
    ...
      <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>{COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
      </servers>
    ...
    </settings>
  4. 암호만 괄호 사이에 맞게 있으면 되고 기타 문자열은 무시된다. 그러므로 주석등이 필요하면 기술할 수 있다. (이 방법보다는 git 으로 형상관리하는걸 추천)

    <settings>
    ...
      <servers>
    ...
        <server>
          <id>my.server</id>
          <username>foo</username>
          <password>Oleg reset this password on 2009-03-11, expires on 2009-04-11 {COQLCE6DU6GtcS5P=}</password>
        </server>
    ...
      </servers>
    ...
    </settings>
  5. mvn deploy:deploy 를 실행해서 정상적으로 인증을 통과하는지 확인한다.

 

Ref