/**
작업을 하다 보니 원격에 있는 서버에 파일들을 복사 해야 하는 이슈가 발생했다.
내가 생각 한 방법은 아래와 같다.
1. 서버를 띄워 놓고 일정 주기 마다 클라이언트가 서버에게 파일의 내용을 전송한다. -> 귀찮다
2. 'scp' 를 crontab에 등록한다. -> scp를 사용하기 위해서는 패스워드를 수동으로 입력해야 한다. -> 패스워드없이 입력 할 수 있도록 설정이 가능하다.
-> ssh에 대해 알아야 한다.
*/
How to do it
상황 설정
- 한 사용자가 A라는 서버에는 a라는 계정을 가지고 잇고, B라는 서버에는 b라는 계정을 가지고 잇다고 가정하자.
- 여기서 로그인 하고자하는 타켓은 B서버라고 한다.
- 계정이 다르고, 패스워드가 달라도 ssh 연결을 하는데는 전혀 지장이 없다.
- 셋팅
우선 두대의 시스템 모두에서 ssh 관련 설정 파일을 열어 인증 관련 지시자를 활성화 시켜주어야 한다.
- 이 작업 부분에 대해서는 root 권한을 가지고 있어야 하며, 만일 root 권한이 없다면 관리자에게 요청하도록 한다
# vi /etc/ssh/sshd_config
두 시스템 모두 위 경로의 파일을 열어 ssh 데몬의 설정을 아래와 같이 변경 하도록 하자
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
여기서 주목할 것은 세번째 줄의 authorized_keys 이다. 공개키가 기록되는 파일이며 어떠한 방법을 이용하던 ssh 로그인을 하고자 하는 대상 시스템의 공개키가 여기 기록되어 있어야 한다.
- 이 작업 부분에 대해서는 root 권한을 가지고 있어야 하며, 만일 root 권한이 없다면 관리자에게 요청하도록 한다
- A에 a 계정으로 로그인 하도록 하자. 그리고 아래와 같이 타이핑한다.
※ passphrase 는 입력하지 않도록 하자!
a@A:~]$ ssh-keygen -t rsa위의 작업을 거치고 나면 .ssh 디렉토리에는 id_rsa.pub라는 파일이 생성된다.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): # 아무것도 입력하지 않는다
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
fe:a8:cf:44:0a:21:9f:ad:61:bc:f6:f6:e3:a3:06:73 a@A.server.com
- id_rsa.pub의 내용을 타겟 서버의 .ssh/authorized_keys파일에 복사하도록 한다.
(만일 파일이 없다면 만들도록 한다)
a@A:~]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA9PbV3VCTedANFSiAUiibbAa+19OfG4f/YbjS5OSTUUSxzutnF1n
r3dUrr97aHzmkaRb4MF72QTWpNj3sX1mtQ1foVc9IrFb67nbBFMLw3sao/B0k7xNdV/iMJgxOyT7YXmK
Np/Bb
/JU3tcmZui0hFdE/oGZyMP49AXqN6+GBo2s= a@A.server.com
a@A:~]$ cat id_rsa.pub | ssh b@B.server.com 'cat >> ~/.ssh/authorized_keys'
b@B.server.com's password:
a@A:~]$ ssh B.server.com -lb
Last login: Thu Dec 28 17:26:17 2006 from A.server.com
b@B:~]$
원문 보기 :
http://www.linuxproblem.org/art_9.html
http://suselinux.co.kr/bbs/board.php?bo_table=tip&wr_id=1701
mail :
kukuta@gmail.com