ssh, scp 비밀번호 없이 수행하기. ( public key based authentication )
ssh ( Secure Shell )은 기본적으로 암호를 요구한다.
어짜피 텔넷상에서 사용할 때는 입력하면 되지만…
쉘 스크립트 등에서 사용할 때는.. 여간 골치아픈게 아니다..
비밀번호를 넣지 않도록 하기 위해서는 공개키 기반 인증( ssh public key based authentication ) 을 하면 된다..
즉.. 미리 ssh 인증을 서버간에 해두면,
그 인증파일을 사용하여 비밀번호 없이 ssh 나 scp 등을 사용할 수 있다.
방식은…
Source Server에서 키를 아래와 같이 생성한다.
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ID/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ID/.ssh/id_rsa.
Your public key has been saved in /home/ID/.ssh/id_rsa.pub.
The key fingerprint is:
f4:67:d3:18:09:65:35:79:e5:72:44:9e:f1:63:cd:83 ID@serverName
여기에서. 3번 명령어 입력을 기다리는데…
1. Enter file in which to save the key : 이건 인증 파일을 어디에 만들지를 물어본다.. 걍. 엔터치면 계정의 ~/.ssh 밑에 파일들이 생성된다..
2. Enter passphrase : passphrase 비밀번호를 입력하라는 말이다. 비밀번호 입력을 안하려 하니 그냥 엔터.
3. Enter same passphrase again : 확인샷… 역시 그냥 엔터.
생성되는 파일들은..
/home/ID/.ssh
[ID@serverName .ssh]$ ls -alt
total 24
drwx—— 5 search search 4096 Dec 27 18:59 ..
drwx—— 2 search search 4096 Dec 27 18:13 .
-rw——- 1 search search 1671 Dec 27 18:13 id_rsa
-rw-r–r– 1 search search 398 Dec 27 18:13 id_rsa.pub
[ID@serverName .ssh]$
id_rsa는 private key.
id_rsa.pub 는 public key이다.
키가 생성되었으면, 키를 destination server로 전송해야 한다.
키를 모두 보내는 것은 아니고 공개 키인 id_rsa.pub 를 전송한다.
ID2@serverName2’s password:
id_rsa.pub 100% 398 0.4KB/s 00:00
[ID@serverName ~]$
이렇게 하면 끝.. 이긴 한데..
보면. 이름을 바꿔서 넣는다..
authorized_keys 말고.
authorized_keys2 까지는 인식한다..
하지만, 1authorized_keys, authorized_keys_aaa, authorized_keys3 등은 인식하지 않는다.
흐음~ ^^
여기서… destination server에 .ssh 폴더가 없는 경우가 있다..
이경우에는 만들어주면 되든데..
주의할점이.. 권한을 700으로 주어야 하고. 물론 소유 계정은 접근을 원하는 계정이어야 한다..
계정루트에 있으니까 당연한가… 흠.
확인은..
ssh ID2@serverName2 했을 때 비밀번호를 인증하라고 메세지가 나오지 않으면 OK.
물론, scp도 사용 가능하다.
추가로…
passphrase 비밀번호 변경 명령은 아래와 같다.
참고로. dsa와 rsa는 pubilc-key cryptography 방식들이다..
http://en.wikipedia.org/wiki/Public-key_cryptography
http://en.wikipedia.org/wiki/Digital_Signature_Algorithm
http://en.wikipedia.org/wiki/RSA