레이블이 scp인 게시물을 표시합니다. 모든 게시물 표시
레이블이 scp인 게시물을 표시합니다. 모든 게시물 표시

2008년 6월 12일 목요일

SCP를 사용하여 자동으로 데이터백업

어떻게 하면 SCP를 이용해 Password를 입력하지 않고 백업할 파일들을 백업서버로 가지고 올 수 있을지를 고민 하다가 알게 된 2개의 사이트를 참조하여 끝내는 성공하게 되었다.
방법은 아래와 같이 하면 된다.

우선 백업서버를 A라고 하자 그리고 백업을 해야 할 파일들이 있는 서버들을 B, C, D...

자 그러면 트러스트 관계를 만들어 보도록 하자.
1. scp를 사용하여 자동으로 데이터를 복사하기 위해서는 두대의 머신이 트러스트(Trusted) 관계에 있어야 된다. 두대의 서버를 트러스트 관계로 만들기 위해서는 공개/개인 dsa 키 쌍을 생성하여 트러스트 관계의 서버에 복사해야 된다. A서버에 ssh나 telnet으로 로그인하여 root 유저에서 다음 명령을 따라 한다.


[root@localhost /]# /usr/bin/ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa): Enter
Enter passphrase (empty for no passphrase): Enter
Enter same passphrase again: Enter
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
a5:41:46:fe:37:f5:54:1c:3f:7b:f3:63:16:ea:34:fd root@www.rickinc.com


위와 같이 키 생성이 완료가 되었다면 A서버에서 생성한 키를 B, C, D... 서버에 키를 복사를 다음과 같이 한다.


[root@localhost /]# /usr/bin/scp /root/.ssh/id_dsa.pub B, C, D... 서버 유저ID@B, C, D... 서버 IP:~/:
The authenticity of host 'rickinc.com (172.16.1.33)' can't be established.
RSA key fingerprint is 0c:99:a2:e4:1b:2f:fc:b2:46:f5:a6:b5:cd:12:2a:ec.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'rickinc.com,172.16.1.33' (RSA) to the list of known hosts.
B, C, D... 서버 유저ID@B, C, D... 서버 IP's password: (서버 계정의 패스워드 입력)
id_dsa.pub 100% ********************************************************************************* 608 00:00


위와 같이 B, C, D... 서버에 키를 복사하고 난 후 키를 복사한 B, C, D... 서버에 유저ID로 로그인 한다. 그리고 앞에서 복사한 파일의 내용을 .ssh/authorized_keys 파일에 추가하기 위해 유저의 홈 디렉터리에서 다음 명령을 실행한다.


[userid@testserver ~]$ mkdir .ssh
[userid@testserver ~]$ /bin/cat id_dsa.pub > .ssh/authorized_keys


위의 처리 부분이 잘되었는지 확인 하는 방법은 아래의 명령어를 사용하면 된다.

[userid@testserver ~]$ /bin/more .ssh/authorized_keys
ssh-dss AAAAB3NzaC1kc3MAAACBANEuZIB0w4k+VQsAFDJ0E+J3MQ+7FvHZzFJA4E5Y7fVvtRZEaBKo3kMaH3wb6rKSXVWw8X3pX4442lzNq7g0zCmcXSUZrH3mNQ1jVCj0
it2F9H3rv6zwntWAgJNDFRyZBXcv6ijVuHm4zNqxSlqG3cZLCtx0O8GKsbqNSJAZk/8NAAAAFQDKW7n7BpGcnkfN1MIeRl70ybtiYQAAAIEAr6PmB4ThIflrjojmajfp3y0l
IE2GT5aOC0Y0Guyi9shrnErgqb8vVHsuKfxE+DB/gTPZpi5UigOxudO6ZIL0HN4l1MlpeuBInkjv3jG+qDQZs2YieN2VwOSkWgNTCzAffmTD0z0cfntmnCPCjYkGgwyGRz1x
gU5NbY2dXyK6NbAAAACALzt5avRoktIybJkeZNp0/1xvkD/gBXFbRbkV6eRdG7kKg1LlLapAtxynRaALIeBpHvRHkSlyovZa0BTTGMxy5dsLwVbpISPybqqHDlmnFID3jtwi
855OLwiHVGf/Hj7hmlt1sLMSMiK8nEGZRm2QqtgPKodEP1Dm6HLUoLRHEGo= root@rickinc.cm


확인이 완료 되었다면 보안을 위해 B, C, D... 서버에서 사용한 키 파일을 삭제하고 키가 저장된 파일의 퍼미션을 변경하도록 한다.


[userid@testserver ~]$ rm -f id_dsa.pub
[userid@testserver ~]$ chmod 700 .ssh
[userid@testserver ~]$ chmod 644 .ssh/authorized_keys


여기까지 완료가 되었다면 이제 A서버에서 B, C, D... 서버에 패스워드 없이 접근이 가능하다.
접근하는 방법은 다음과 같이 하면 된다.
/usr/bin/scp 유저ID@서버IP:/home/test/index.html .

이렇게 복사가 되는 화면을 보게 될것이다.