Collects/LinuxServer

SSH Client Key 를 이용하여 각 서버에 인증없이 ssh 접속하기

NWAN 2008. 11. 28. 10:30
SSH Client Key 를 이용하여 각 서버에 인증없이 ssh 접속하기

작성자 :  NWAN
참고문헌 : Linux 서버관리 Hacks 100


리눅스 서버 2대 사이에서 ssh 를 통해 접속 시도가 많을 경우에 유용한 기술중에 하나이다.
ssh-keygen 을 통해 개인키 및 공개키를 생성하여 상대방 서버에 카피하는 방식이다.
예를 들어서 작성해 보겠다.

우선은 리눅스 머신 1대의 아이피는 192.168.0.110 번이고, 또 한대의 아이피는 192.168.0.111 으로 설정했다
가정하고, 192.168.0.110 번을 서버1번, 192.168.0.111 번을 서버2번 으로 하겠다.

ssh-keygen 을 사용하기 위해서는 각 서버에 ssh 서버가 설치되어 있어야 한다. 요즘 나오는 왠만한 리눅스는
구지 설치를 하지 않더라도 서버가 설치되어 있지만 혹시나 설치가 안되있으신 분들이나 최신 ssh 서버로
설치를 원하고자 하시는 분들은 http://openssh.org/ 사이트에서 최신 버전으로 다운받아 설치하시길 바란다.

각 서버에서 설정하여야 할 사항은 이렇다. 먼저 서버1번에서 설정을 하겠다.

사용자 삽입 이미지

'ssh-keygen -t rsa' 를 통하여 공개키와 개인키를 생성한다. 이 명령어를 입력하고 엔터를 누르면
공개키와 개인키를 저장할 디렉토리 설정 및 비밀번호를 물어보게 되는데 여기서는 Default 설정만 하겠다.
(아무 값도 입력하지 않고 엔터를 누르면 Default 설정이 된다)

사용자 삽입 이미지

공개키와 개인키 생성이 끝나면 위 그림처럼 해당 홈디렉토리 안에 .ssh 라는 폴더가 생기고, 그 안에 들어가면
id_rsa 라는 개인키와 id_rsa.pub 라는 공개키가 생성이 된다. 여기서 서버1번에서 생성된 공개키를 서버2번에
복사를 해주면 된다.

사용자 삽입 이미지

위 그림과 같이 서버2번 test 계정의 홈디렉토리에 .ssh 라는 폴더를 생성해주고, 서버1번에서 생성한 공개키를
scp 를 이용하여 서버2번 test 계정안에 .ssh/authorized_keys2 라는 이름으로 전송을 해 준다. 그 다음에
서버1번에서 서버2번으로 ssh 접속을 시도하면 'Last login: Mon Nov 24 23:48:38 2008 from 192.168.0.40' 라는
메세지와 함께 인증을 비밀번호를 물어보지 않고 바로 접속이 가능하다.(192.168.0.40 번은 Window IP)

서버 2번에서도 마찬가지로 서버1번에 인증없이 접속하길 원한다면 위 과정대로 그대로 따라하면 접속이 가능
하다. 단, 리모트 홈디렉토리에 .ssh 라는 폴더가 이미 존재하므로 디렉토리를 만드는 과정은 생략해도 된다.

이제 서버 1번에서 서버2번으로 암호 없이 바로 ssh 접속이 가능하고, 마찬가지로 서버2번에서 서버1번으로
인증없이 바로 접속이 가능하게 될 것이다. 단, 공개키를 복사한 계정만 접속이 가능하지 다른 계정으로 접속
을 하려면 똑같이 공개키를 리모트 홈디렉토리에 복사하여야 한다.

                                                                                                                    -  post by NWAN -