Mercurial tip – 인증 정보 저장하기

Mercurial과 같은 분산형 버전 관리 시스템에서는 저장소 사이에서 push, pull을 사용해 동기화 할 수 있다. 하지만 각 개발자 사이에서 직접 동기화 하는 것보다는 중앙 저장소를 하나 만들고 이를 중심으로 동기화하는 편이 여러모로 간편하다. 다만 이 중앙 저장소는 최종 제품을 만들어 낼 소스를 저장하므로 아무나 접근하도록 해서는 안 될 것이다. 이 때문에 인증 과정을 거치는데 매번 인증 정보를 넣어야 하므로 이 과정을 상당히 불편하게 느낄 수 있다. 그러므로 이 정보를 저장해서 자동으로 인증을 거치도록 해 본다. 여기서는 http, https로 접속할 경우만 다루며, 편리함과 보안은 반비례하므로 자신의 인증 정보 관리에 각별히 신경쓰도록 한다.

1. 설정

두 가지 설정 방법이 있다. 첫 번째는 접속 주소에 인증 정보를 넣는 것이고 두 번째는 인증 정보를 별도로 넣는 방법인데 차례로 알아본다.

1.1. 접속 주소에 인증 정보 넣기

접속 주소에 인증 정보를 넣는 방법은 다음과 같다.

http://user:[email protected]

이 정보를 매번 직접 입력하거나 로컬 저장소의 hgrc 파일(.hghgrc) 내용에서 [paths] 섹션에 있는 각 원격 저장소 경로에 추가해도 된다. 단점은 접속할 때 계정과 암호 정보가 드러난다는 점이다.

http:[email protected]

또는 계정 정보만 넣어 암호만 따로 입력하도록 할 수도 있다.

1.2. 인증 정보를 별도로 넣기

Mercurial 1.3부터는 별도로 인증 정보를 넣을 수 있도록 [auth] 섹션을 제공하며 형식은 다음과 같다.

foo.prefix = hg.intevation.org/mercurial
foo.username = foo
foo.password = bar
foo.schemes = http https

bar.prefix = secure.example.org
bar.key = path/to/file.key
bar.cert = path/to/file.cert
bar.schemes = https
  • prefix는 접속 경로이다. schemes 부분을 붙일 수도 있고 붙이지 않을 수도 있다.
  • username은 계정 정보이다. 이 정보가 없으면 인증 과정에서 물어 본다.
  • password는 암호이다. 이 정보가 없으면 인증 과정에서 물어 본다.
  • key와 cert는 PEM으로 인코딩한 인증 정보이며 필요에 따라 사용한다.
  • schemes에는 http, https를 사용할 수 있으며 기본값은 https이다. prefix에 schemes 정보가 있으면 사용하지 않아도 된다.
  • foo, bar는 인증에 사용하는 각 항목을 묶어 주는 그룹 정보이다. 자신이 각 인증 정보를 쉽게 구분할 수 있도록 쓰면 되겠다.

이 정보는 각 저장소별 hgrc에 저장해도 되지만 전역으로 사용하는 .hgrc 파일이나 Mercurial.ini 파일에 적어 주는 게 간편하다.

 

You may also like...