일상의 정리

svn+ssh 암호 없이 사용하기

리눅스/설치

1. Cent OS 에 svn 설치하기

 

# yum install subversion

 

# mkdir /home/svn

 

2. 저장소 위치 설정

# groupadd svn

/etc/group 에 svn 그룹에 포함될 사용자(svn을 사용할 사용자)를 추가한다.

 

3. 저장소 추가

# cd /home/svn

# svnadmin create --fs-type fsfs sample

--> group 쓰기가 가능하도록 설정한다

# chgrp -R svn sample

# chmod -R g+w sample

 

ssh 로 사용할 경우에는 패스워드 파일 생성등 별도의 작업이 필요 없다.

 

4. TortoiseSVN 에서 암호 없이 접속하기

접속할 계정으로 터미널 접속

$ ssh-keygen -b 1024 -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/admin/.ssh/id_dsa.
Your public key has been saved in /home/admin/.ssh/id_dsa.pub.

$ cd .ssh

$ mv id_rsa.pub authorized_keys

$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 89:79:86:1b:cb:fc:a0:05:9c:65:88:b5:4c:1b:7f:c8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Last login: Sun Jan 11 00:43:26 2004 from 192.168.0.25

만약... 위의 방법으로 접속이 실패했다면...
sshd가 인증키로 인증을 허용하지 않기 때문이다.
이럴 경우.
sshd_config(보통은 /etc/ssh/sshd_config)에 다음 두줄이 포함되어 있는지 확인하자.

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

만약 개인키를 암호 없이 사용하는 것이 찝찝하다면 ssh-keygen 을 실행시 암호를 주면 된다.
 

Winscp 나 psftp 를 이용해서 위에서 만든 개인키 (id_rsa) 를 가져온다.


puttygen을 실행 후 메뉴 중의 Convesions - Import Key 로 가져온 개인키를 로드

다른 건 건드리지 말고 


Save private key 로 개인키를 적당한 이름의 xxx.ppk 파일로 저장한다.


-------------------------------------------------------

1. pagent.exe 를 사용하는 방법 
-------------------------------------------------------
저장 후 pageant.exe 를 실행하며 트레이 아이콘에 표시되는 데 Add Key 로

위에서 저장한 xxx.ppk 파일을 로드한다.

 

이 상태에서 SVN 명령을 수행할 경우 암호 없이 사용가능하다.
-------------------------------------------------------

-------------------------------------------------------
2. TortoisePlink 를 이용하는 방법
-------------------------------------------------------
TortoiseSVN을 설치한 후 

c:\Documents and Settings\username\Application Data\Subversion\config

파일을 오픈한 후

[tunnels]
항목에 다음과 같이 추가한다.
ssh2222 = C:/Program Files/TortoiseSVN/bin/TortoisePlink.exe -P 2222 -i "d:/keys/mykey.ppk"

2222는 ssh 포트가 다를 경우 지정하는 것이고
-i 뒤에 키파일을 지정한다.

위와 같이 한 후 
svn+ssh2222://
처럼 포트를 바꾸고 패스워드를 묻지 않도록 사용할 수 있다.
---------------------------------------------------------