SCP를 암호없이 사용 하기 / ssh 로그인 없이 접속하기
1. 두대의 서버 트러스트 관계 만들기
1) scp를 사용하여 자동으로 데이터를 복사하기 위해서는 두대의 머신이 트러스트(Trusted) 관계에 있어야 된다. 두대의 서버를 트러스트 관계로 만들기 위해서는 공개/개인 dsa 키 쌍을 생성하여 트러스트 관계의 서버에 복사해야 된다. 한쪽 서버(백업 데이터를 저장할)에 ssh나 telnet으로 로그인하여 root 유저에서 다음 명령을 따라 한다.
1 2 3 4 5 6 7 8 9 |
]# /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: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@abc.com |
2) 아래 명령을 실행하여 상대편 서버에 ‘1)’번에서 생성한 dsa 키를 복사한다.
1 2 3 4 5 6 7 |
]# /usr/bin/scp .ssh/id_dsa.pub user@123.com: The authenticity of host '123.com (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '123.com,xxx.xxx.xxx.xxx' (RSA) to the list of known hosts. user@123.com's password: (서버계정의패스워드입력) id_dsa.pub 100% |*********************************************************************************| 608 00:00 |
3) 이제 서버에 일반 유저계정(앞에서 사용한 계정:user)으로 로그인 한다. 그리고 앞에서 보내온 파일의 내용을 .ssh/authorized_keys 파일에 추가하기 위해 유저의 홈 디렉터리에서 다음 명령을 실행한다.
1 2 |
]$ mkdir .ssh ]$ /bin/cat id_dsa.pub > .ssh/authorized_keys |
4) 그리고 정확히 실행되었는지 아래 명령을 사용하여 확인한다. 이 파일의 내용은 대략 다음과 같이 생겼다.
1 2 3 4 5 6 |
]$ /bin/more .ssh/authorized_keys ssh-dss AAAAB3NzaC1kc3MAAACBANEuZIB0w4k+VQsAFDJ0E+J3MQ+7FvHZzFJA4E5Y7fVvtRZEaBKo3kMaH3wb6rKSXVWw8X3pX4442lzNq7g0zCmcXSUZrH3mNQ1jVCj0 it2F9H3rv6zwntWAgJNDFRyZBXcv6ijVuHm4zNqxSlqG3cZLCtx0O8GKsbqNSJAZk/8NAAAAFQDKW7n7BpGcnkfN1MIeRl70ybtiYQAAAIEAr6PmB4ThIflrjojmajfp3y0l IE2GT5aOC0Y0Guyi9shrnErgqb8vVHsuKfxE+DB/gTPZpi5UigOxudO6ZIL0HN4l1MlpeuBInkjv3jG+qDQZs2YieN2VwOSkWgNTCzAffmTD0z0cfntmnCPCjYkGgwyGRz1x gU5NbY2dXyK6NbAAAACALzt5avRoktIybJkeZNp0/1xvkD/gBXFbRbkV6eRdG7kKg1LlLapAtxynRaALIeBpHvRHkSlyovZa0BTTGMxy5dsLwVbpISPybqqHDlmnFID3jtwi 855OLwiHVGf/Hj7hmlt1sLMSMiK8nEGZRm2QqtgPKodEP1Dm6HLUoLRHEGo= root@abc.com |
5) 보안을 위해 서버에서 사용한 키 파일을 삭제하고 키가 저장된 파일의 퍼미션을 변경한다. 이로서 두 서버가 트러스트 상태가 되었다.
1 2 3 |
]$ rm -f id_dsa.pub ]$ chmod 700 .ssh ]$ chmod 644 .ssh/authorized_keys |
6) 테스트를 위해 서버의 유저 디렉터리에서 파일 하나를 복사해 보자. 파일을 복사하려는 서버(abc.com)에서 다음 명령을 실행한다. (서버의 user 유저의 홈 디렉터리에 default.html 파일이 있다고 가정)
1 2 3 |
]$/usr/bin/scp user@123.com:/home/user/default.html /home/user/default.html default.html 100% |******************************************************************| 6131 00:00 ]$ |