서브버전
델리마운트 위키
목차 |
svn+ssh 공개키 인증
svn+ssh 프로토콜로 저장소에 접근하게 되면, 클라이언트 내부적으로 ssh tunneling을 통해서 명령을 수행하게 됩니다. 이 과정중에 ssh 접속이 여러차례 이루어지게 되는데, 아이디/암호 인증을 하게 되면 사용자 입장에서는 한번의 svn 명령을 수행하는 데 여러번의 로그인 요구가 발생하여 사용이 매우 불편하게 되며, 맥 시스템에서 사용되는 많은 SVN 클라이언트들은 아이디/암호 인증을 지원하지 않아 문제가 되기도 합니다. 이 문제는 RSA/DSA와 같은 공개키 암호화 방법을 통해서 인증과정을 수행하여 해결할 수 있는데, 표준으로 자리잡은 고수준의 암호화 방법이며 개인키에 암호를 지정할 수 있어 로컬 머신의 보안도 신경쓸 수 있기 때문에 권장할만한 방법입니다. 개인키에 암호를 지정하는 것은 많은 사람들이 암호입력이 귀찮다는 이유로 생략하는 경우가 많은데, 이는 로컬 머신을 통해 원격 머신까지 위험에 노출시킬 수 있기 때문에 암호를 지정해주는 것이 좋습니다.
인증 방법은 RSA와 DSA등을 선택할 수 있습니다. DSA의 경우 표준이기는 하나 SSH2 프로토콜에서만 지원되며, 암호화 수준이 1024bit로 고정입니다. RSA 역시 업계 표준이며 SSH, SSH2 프로토콜 모두에서 지원되고 암호화 수준은 기본을 2048 bit를 사용하며 변경 가능합니다. 호환성과 암호화 수준을 볼 때, RSA를 사용하는 것이 좋을 듯 합니다.
맥 시스템에서 공개키 암호화를 통해 우분투 서버에 ssh 인증
우선 인증을 받을 맥 시스템에서 터미널을 열고 개인키와 공개키를 생성하도록 합니다.
ssh-keygen -t rsa
- 명령을 실행하면, 우선 공개키와 개인키의 경로를 요구하는데, 엔터 키를 눌러 기본으로 제공되는 것을 사용하는 것을 권장합니다. (~/.ssh/id_rsa)
다른 것을 사용하게 되면 ssh 명령어 사용 시 그 경로를 따로 입력해줘야 하는 불편함을 감수해야 합니다.
- 그 다음으로 인증 요청시 로컬 머신에서 개인키 접근에 필요한 암호를 요구합니다. 편의상 공란으로 둘 수도 있으나, 보안상의 이유로 입력하는 것을 추천합니다.
개인키와 공개키가 생성되었다면, 우분투 서버에서 공개키 인증을 허용하도록 설정해줍니다. 기본으로 제공되는 경로로 생성하였다면 공개키는 ~/.ssh/id_rsa.pub 파일입니다. 이 파일을 우분투 서버 내 인증받을 사용자의 ssh 인증 공개키들에 추가해줘야 합니다.
- ~/.ssh/id_rsa.pub 파일을 서버에 업로드 합니다.
- 업로드한 파일을 우분투 서버의 ~/.ssh/authorized_keys 파일에 추가해줍니다.
authorized_keys 파일은 접근이 허용될 모든 공개키를 담아두는 파일입니다. 따라서 복수개의 공개키 정보를 담고 있을 수 있습니다.
- 만약 ~/.ssh/authorized_keys 파일이 이미 존재하는 경우, 다음과 같이 내용을 추가해줍니다.
cat id_rsa.pub >> ~/.ssh/authorized_keys
- 반대로, ~/.ssh/authorized_keys 파일이 존재하지 않는다면 새로 생성해줍니다.
mv id_rsa.pub ~/.ssh/authorized_keys
이제 서버에 ssh 접속을 시도해보면, 개인키 생성시 입력했던 암호를 물어보게 될 것입니다. (공란으로 한 경우에는 물어보지 않습니다.) 해당 암호를 입력하시면 서버로부터 공개키 인증을 받아 접속하게 됩니다.
백업 및 복구
임시 정리...
- svn 데이터(repository) dump 및 load 복구 방법
- sudo svnadmin dump /path/to/repositary/ > path_to_dump_file
- 리비전 번호를 유지하는 편이 좋을듯...
서브버전 활용
수정된 작업물만 내보내기
특정 버전에서 변경된 작업물만 내보내기하는 과정은 아래와 같습니다. (톨토이즈를 기준으로 설명합니다)
- 해당 폴더 선택 후 컨텍스트 메뉴에서 TortoiseSVN > Show log 선택합니다.
- Log messages 창에서 해당 리비전을 선택 후 컨텍스트 메뉴에서 Compare with previous revision을 선택합니다.
- Changes Files 창에서 전체 파일을 선택한 후 컨텍스트 메뉴에서 Export selection to... 메뉴를 선택합니다.
- 대상 폴더를 지정하면 해당 폴더로 수정된 작업물만 내보냅니다
서브버전 설치
윈도우즈
- 버전 1.6.0을 기준으로 합니다. 이전까지는 CollabNet에서 설치형 바이너리를 제공해주었으나, 최근 CollabNet 사이트에서 Subversion Downloads 페이지에 컨텐츠가 없어서 수동으로 설치하도록 하겠습니다.
- subversion: Subversion Packages#windows 에서 Tigris.org: Apache 2.0 or Apache 2.2 부분의 Apache 2.2를 선택합니다.
- 설명에 Subversion Win32 binaries for Apache 2.2.x (2.2.9 or higher is required within the 2.2.x series). 라 적힌 파일을 다운로드 받습니다.
- 다운로드 받은 파일의 압축을 해제합니다.
- 압축을 해제하여 나타난 svn-win32-1.6.0 폴더를 원하는 설치경로로 복사합니다. 만약 이전 버전의 Subversion이 설치되어있다면, 설치를 제거해주도록 합니다.
- 시작 > 제어판 > 시스템을 실행합니다.
- 고급 > 환경 변수를 클릭합니다.
- 시스템 변수 > Path를 선택한 후, 편집을 클릭합니다.
- 설치 경로(예를 들어 XP의 경우 C:\Program Files\svn-win32-1.6.0\bin)를 추가해줍니다. (변수 값 부분의 이전 내용에 ';'으로 구분합니다)
- 모두 확인 합니다.
- 시작 > 실행 > cmd를 실행합니다.
- svn --version 을 실행하여 제대로 설치되었는지 설치된 버전을 확인합니다.
리눅스
- 설치 환경은 우분투 8.04 입니다.
sudo apt-get install subversion
사용자 그룹 설정
- 서브버전을 svn+ssh로 프로토콜로 접근하실려면 사용자 그룹을 추가하셔야 됩니다.
sudo groupadd GROUP_NAME
- 생성한 그룹에 사용자 추가하는 방법
sudo gpasswd -a USER_NAME GROUP_NAME 또는 sudo usermod -G GROUP_NAME1,GROUP_NAME2,GROUP_NAME3.. USER_NAME
이전 문서
자세한 관리방법은 이전 위키에 정리되어있으며 아직 옮겨오지 못했습니다. 서브버전
