정말 오랜만에 이런 기술적인 글을 남기는 것 같다.
일단 원래 webdav + SSL(https)를 이용해서 설치하려고 했지만, 불행히도 현재 사용하고 있는 서버의 배포본이 워낙 구버전인 관계로 mod_dav_svn 을 모듈로 제공해주지 않더구만.
수동으로 설치하면 되겠지만, 추후 유지보수 문제도 있고해서 결국 귀차니즘신이 승리해버렸다.
그래서 방향을 svn 프로토콜 쪽으로 급선회했고, 약간의 보안문제가 있어서 해결하는 김에 svn+ssh 로 결정지었다.
우선 필요한 것들로는...
리눅스(또는 유닉스) 쉘권한을 가진 계정
리눅스 SVN 패키지
윈도우즈용 Tortoise SVN 클라이언트
윈도우즈용 putty 및 puttygen
가 되겠다.
일단 리눅스에 접속해서 적당한 곳에 저장소(Repository)를 만들자.
그러면 myproject 란 디렉토리가 생기고, 안에 정체불명의 잡다한 파일들이 들어있을 것이다.
요놈들은 svn 데몬(daemon)을 따로 돌릴 생각이 없다면 전~혀 건드릴 필요가 없다.
(참고로 svn+ssh 는 데몬이 필요없다)
그 다음 할 일은, 공개키/개인키 쌍을 생성하는 일이다.
저런 식으로 암호문(Passphrase)을 물어본 후 입력하면 키가 생성된다.
아마 mykey 란 파일과, mykey.pub 파일 두개가 생성될 것이다.
눈치챘겠지만, 첫번째 것은 개인키 파일이며, 두번째 파일이 공개키 파일이다.
이제 공개키를 서버에 저장시켜놓으면 서버에서 할 일은 끝이다.
자 그럼 윈도우즈로 넘어가보자.
일단 리눅스에서 생성한 개인키(mykey) 파일을 sftp, ftp 등을 이용해서 윈도우즈로 받아오자.
putty에서는 자체적인 키 포맷을 지원하기 때문에, 요 개인키를 putty용 키로 바꿔줘야 한다.
그때 사용하는 툴이 puttygen.
실행하면 작은 창이 뜨는데, 위의 메뉴 중 Conversions → Import key 를 선택해서 아까 받은 개인키를 고르자.
그럼 passphrase를 물어보는데, 키를 만들 때 입력했던 것을 입력하면 된다.
그럼 Key 부분에 세부 정보가 표시될 것이다.
Key passphrase, Confirm passphrase에 나와있는 것을 지우고, Save private key를 클릭해서 개인키를 ppk 포맷으로 저장하면 puttygen 의 역할은 끝난다.
다음엔 putty 를 실행해서 세션을 만들 차례이다.
putty를 실행하고 왼쪽의 접속 → SSH → 인증 → 인증 개인키 파일 부분에 방금 생성한 ppk 포맷의 개인키를 입력하자.
다음에 세션 메뉴에 들어가서 저장된 세션 부분에 mysession 등을 입력해서 저장 버튼을 누르면 세션이 저장된다.
이때 입력한 mysession과 같은 이름이 svn+ssh 에서 접속 매개변수로 사용된다.
테스트 삼아서 체크아웃이나 해보자.
대충 윈도우즈에서 폴더 하나 만들어서 마우스 오른쪽 클릭하면 SVN Checkout 이라는 메뉴가 있다.
요놈을 클릭하면 작은 창이 뜨는데, repository 부분에는 다음과 같이 입력하면 된다.
눈치챘겠지만 다시한번 위 URL을 설명하면...
godyang은 계정 이름
mysession은 putty 에서 저장한 세션 이름
/home/godyang/svn/myproject 는 SVN 저장소(Repository)가 있는 경로
가 되겠다.
사실 ssh 연동안한 svn 프로토콜(svn://)을 사용하면, chroot 비슷한 설정을 제공하기 때문에 절대경로 앞부분을 생략할 수 있다.
하지만 뭐 일단 ssh 위에서 돌아가기 때문에, 저렇게 절대경로를 다 입력해줘야하나보다.
귀찮으면 Symbolic link 걸든지... 그건 응용하기 나름.
아무튼 정상적으로 체크아웃이 되었다면 폴더 아이콘 부분에 체크 표시가 될 것이다.
요건 Tortoise SVN 에서 제공하는 기능이다.
만약 새로 갱신되었는데, 체크아웃이 안된 파일이 있다면 - 표시가 될 것이다.
요런 방식으로 버전을 관리하면 된다.
자세한 것은 Tortoise SVN 메뉴얼을 참고하면 될 것이다.
(사실 나도 한시간 전에 받아서 쪼물딱 쪼물딱 해본거라 잘 모름 -_-)
참고 사이트들...
http://tortoisesvn.net/ssh_howto
http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html
일단 원래 webdav + SSL(https)를 이용해서 설치하려고 했지만, 불행히도 현재 사용하고 있는 서버의 배포본이 워낙 구버전인 관계로 mod_dav_svn 을 모듈로 제공해주지 않더구만.
수동으로 설치하면 되겠지만, 추후 유지보수 문제도 있고해서 결국 귀차니즘신이 승리해버렸다.
그래서 방향을 svn 프로토콜 쪽으로 급선회했고, 약간의 보안문제가 있어서 해결하는 김에 svn+ssh 로 결정지었다.
우선 필요한 것들로는...
리눅스(또는 유닉스) 쉘권한을 가진 계정
리눅스 SVN 패키지
윈도우즈용 Tortoise SVN 클라이언트
윈도우즈용 putty 및 puttygen
가 되겠다.
일단 리눅스에 접속해서 적당한 곳에 저장소(Repository)를 만들자.
godyang@myserver:~/$ mkdir svn
godyang@myserver:~/$ cd svn
godyang@myserver:~/svn$ svnadmin create myproject
godyang@myserver:~/$ cd svn
godyang@myserver:~/svn$ svnadmin create myproject
그러면 myproject 란 디렉토리가 생기고, 안에 정체불명의 잡다한 파일들이 들어있을 것이다.
요놈들은 svn 데몬(daemon)을 따로 돌릴 생각이 없다면 전~혀 건드릴 필요가 없다.
(참고로 svn+ssh 는 데몬이 필요없다)
그 다음 할 일은, 공개키/개인키 쌍을 생성하는 일이다.
godyang@myserver:~/$ ssh-keygen -b 1024 -t rsa -f mykey
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in mykey.
Your public key has been saved in mykey.pub.
The key fingerprint is:
ae:c3:96:1f:83:b1:71:32:2c:c2:37:2d:2f:12:93:53 godyang@myserver
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in mykey.
Your public key has been saved in mykey.pub.
The key fingerprint is:
ae:c3:96:1f:83:b1:71:32:2c:c2:37:2d:2f:12:93:53 godyang@myserver
저런 식으로 암호문(Passphrase)을 물어본 후 입력하면 키가 생성된다.
아마 mykey 란 파일과, mykey.pub 파일 두개가 생성될 것이다.
눈치챘겠지만, 첫번째 것은 개인키 파일이며, 두번째 파일이 공개키 파일이다.
이제 공개키를 서버에 저장시켜놓으면 서버에서 할 일은 끝이다.
godyang@myserver:~/$ mkdir .ssh
godyang@myserver:~/$ mv mykey.pub .ssh/authorized_keys
godyang@myserver:~/$ mv mykey.pub .ssh/authorized_keys
자 그럼 윈도우즈로 넘어가보자.
일단 리눅스에서 생성한 개인키(mykey) 파일을 sftp, ftp 등을 이용해서 윈도우즈로 받아오자.
putty에서는 자체적인 키 포맷을 지원하기 때문에, 요 개인키를 putty용 키로 바꿔줘야 한다.
그때 사용하는 툴이 puttygen.
실행하면 작은 창이 뜨는데, 위의 메뉴 중 Conversions → Import key 를 선택해서 아까 받은 개인키를 고르자.
그럼 passphrase를 물어보는데, 키를 만들 때 입력했던 것을 입력하면 된다.
그럼 Key 부분에 세부 정보가 표시될 것이다.
Key passphrase, Confirm passphrase에 나와있는 것을 지우고, Save private key를 클릭해서 개인키를 ppk 포맷으로 저장하면 puttygen 의 역할은 끝난다.
다음엔 putty 를 실행해서 세션을 만들 차례이다.
putty를 실행하고 왼쪽의 접속 → SSH → 인증 → 인증 개인키 파일 부분에 방금 생성한 ppk 포맷의 개인키를 입력하자.
다음에 세션 메뉴에 들어가서 저장된 세션 부분에 mysession 등을 입력해서 저장 버튼을 누르면 세션이 저장된다.
이때 입력한 mysession과 같은 이름이 svn+ssh 에서 접속 매개변수로 사용된다.
테스트 삼아서 체크아웃이나 해보자.
대충 윈도우즈에서 폴더 하나 만들어서 마우스 오른쪽 클릭하면 SVN Checkout 이라는 메뉴가 있다.
요놈을 클릭하면 작은 창이 뜨는데, repository 부분에는 다음과 같이 입력하면 된다.
svn+ssh://godyang@mysession/home/godyang/svn/myproject
눈치챘겠지만 다시한번 위 URL을 설명하면...
godyang은 계정 이름
mysession은 putty 에서 저장한 세션 이름
/home/godyang/svn/myproject 는 SVN 저장소(Repository)가 있는 경로
가 되겠다.
사실 ssh 연동안한 svn 프로토콜(svn://)을 사용하면, chroot 비슷한 설정을 제공하기 때문에 절대경로 앞부분을 생략할 수 있다.
하지만 뭐 일단 ssh 위에서 돌아가기 때문에, 저렇게 절대경로를 다 입력해줘야하나보다.
귀찮으면 Symbolic link 걸든지... 그건 응용하기 나름.
아무튼 정상적으로 체크아웃이 되었다면 폴더 아이콘 부분에 체크 표시가 될 것이다.
요건 Tortoise SVN 에서 제공하는 기능이다.
만약 새로 갱신되었는데, 체크아웃이 안된 파일이 있다면 - 표시가 될 것이다.
요런 방식으로 버전을 관리하면 된다.
자세한 것은 Tortoise SVN 메뉴얼을 참고하면 될 것이다.
(사실 나도 한시간 전에 받아서 쪼물딱 쪼물딱 해본거라 잘 모름 -_-)
참고 사이트들...
http://tortoisesvn.net/ssh_howto
http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html