리눅스 서버(centos 6.X 32bit, rsync server), 윈도우pc(window 7 64bit, rsync client) rsync ssh 이용 데이터 백업
(rsync ssh 비번 없이 로그인 하여 데이터 백업)


1. 윈도우 pc에서 cwrsync-client 설치
   다운경로 URL : https://www.itefix.no/i2/cwrsync-get
   cwrsync 4.0.5 installer 다운로드 설치


2. 윈도우 pc에서 사용자 디렉토리 생성(반드시 생성, 중요)
   * 기본적으로 C:\Program Files (x86)\cwRsync에 home, 사용자계정이름폴더가 존재하지 않으므로 모두 생성
   예)윈도우 pc 로그인 한 계정이 administrator 일 경우
   C:\Program Files (x86)\cwRsync\home\administrator 생성


3. 윈도우 pc에서 ssh에서 사용할 공개키,개인키 생성
   c:\program files (x86)\cwrsync\bin\ssh-keygen -t rsa

   <생성될 개인키, 공개키 파일 경로 및 파일 이름 지정>   
   Enter file in which to save the key (/home/administrator/.ssh/id_rsa): 
   * 기본 값으로 cwrsync가 설치 되어 있는 C:\Program Files (x86)\cwRsync 하위 폴더로 지정됩니다.
     /home/administrator 경로는 2번 과정에서 생성한 디렉토리 C:\Program Files (x86)\cwRsync\home\administrator를 의미
     위 기본 값으로 실행시 C:\Program Files (x86)\cwRsync\home\administrator\.ssh/id_rsa, id_rsa.pub로 생성됩니다.

   <개인키 비밀번호 설정>
   Enter passphrase (empty for no passphrase):  -> 비밀번호를 입력하지 않습니다. 엔터 입력
   
   <개인키 비밀번호 다시한번 입력>
   Enter same passphrase again: -> 비밀번호를 입력하지 않습니다. 엔터 입력

4. cwrsync path 설정
   cwrsync 설치 후 기본적으로 bin 폴더가 path 잡혀 있지 않아 c:\program files (x86)\cwrsync\bin
   경로가 아닌 곳에서 cwrsync관련 명령어 실행시 경로 못찾아서 에러 발생함
   [윈도탐색기]->[컴퓨터]->[속성]->[고급시스템설정]->[고급탭]에서 환경변수
   시스템 변수 항목중 path에 c:\program files (x86)\cwrsync\bin 추가
   윈도우7 환경변수 설정 참조 : http://sungtg.tistory.com/788


5. 공개키 파일을 리눅스 서버에 업로드
   id_rsa.pub를 리눅스 서버 의 /root/.ssh/authorized_keys 이름으로 변경하여 업로드
   * 여러 윈도우 pc에서 하나의 리눅스 서버로 rsync ssh로 비번없이 로그인 해야 하는 경우는 각 윈도우 pc에서 공개키,개인키 파일을         생성한후 리눅스 서버의 authorized_keys 파일에 각 pc에서 생성한 id_rsa.pub파일 내용을 추가해 주면 됩니다.
      보안상 일반 계정으로 해야 할 경우는 (3)번 과정에서 생성된 공개키를 리눅스 서버상에 존재하는 일반계정 홈디렉토리 .ssh 디렉토리       하위에 authorized_keys로 복사해 주면 됩니다.
      예)일반 계정이 test-user일 경우 -> /home/test-user/.ssh/authorized_keys


6. ssh 비번 없이 로그인 되는지 확인
   <윈도우 명령 프롬프트에서 명령어 실행>
    c:\ssh -l root 192.168.0.31
    * 최초로 서버에 클라이언트에서 ssh로 접속시 묻는 부분 나오는데 yes입력해 주시면 됩니다. 그 이후부터 접속시에는 묻는 부분 
       나오지 않습니다.    
       비번 묻는 부분 나오지 않고 바로 로그인이 되면 키 인증으로 비번 없이 ssh root 계정으로 로그인이 정상적으로 된것입니다.
   * 제대로 설정 했음에도 불구 로그인 창이 나온다면 아래 부분 확인 바랍니다.
     . 리눅스서버 selinux disabled 설정되어 있는지 확인 -> /etc/sysconfig/selinux
     . 리눅스서버 ssh 공개키인증 허용 및 인증키 파일 경로 설정 관련 설정파일 확인 /etc/ssh/sshd_config
       #PubkeyAuthentication yes
       #AuthorizedKeysFile     .ssh/authorized_keys
       -> 기본적으로 위 두개 설정 사항은 주석처리 되어 있습니다. 테스트한 centos 6.3버전에서는 주석처리 되어 있어도 관계없었습니다.
          안될 경우 주석 해제 후 ssh 재시작후 확인 해 보아야 합니다.
     

7. 윈도우pc 에서 리눅스 서버 데이터 업로드 테스트
   <윈도우 명령 프롬프트에서 명령어 실행>
   - 윈도우 pc의 c:\backup에 있는 모든 파일을 리눅스 서버의 /home/backup으로 업로드
   c:\rsync -avz /cygdrive/c/backup/* -e ssh root@192.168.0.31:/home/backup/

   - 리눅스 서버의 /home/backup에 있는 모든 파일을 c:\backup로 다운로드
   c:\rsync -avz -e ssh root@192.168.0.31:/home/backup/* /cygdrive/c/backup/

   * 예제에서는 root 권한으로 하여 리눅스 서버의 모든 경로에 업로드가 가능합니다.       
     일반 계정으로 해야 할 경우는 일반유저의 홈디렉토리로 업로드 하면 됩니다.
     업로드 -> c:\rsync -avz /cygdrive/c/backup/* -e ssh test-user@192.168.0.31:/home/test-user
     다운로드 -> c:\rsync -avz -e ssh test-user@192.168.0.31:/home/test-user/* /cygdrive/c/backup/ 

   * 일정 간격으로 자동 백업을 해야 할 경우 배치파일을 작성하여 예약작업에 걸어 두도록 합니다.


저작자 표시 비영리
신고
Posted by javid

댓글을 달아 주세요