Application

RSA를 이용한 테라텀 SSH

행복한하루 2008. 8. 15. 23:50
요세 보안 문제가 많이 중요해 지면서 서버에 접속할때에 일반적으로 사용하는 Telnet보다는 SSH를 사용하도록 하는 것이 추세 입니다. 그리고 SSH를 이용하여 접속을 할때에도 passphrase방식보다는 RSA방식을 이용하는 것이 좀 더 안전한 것으로 알려져 있습니다.

그래서 이번 글에서는 리눅스 서버에 SSH를 이용하여 접속하는 방법 (RSA 인증)에 대하여 알아보고자 합니다.

RSA 방식은 공개키 암호화를 위한 알고리즘입니다. 즉 이 방식을 위해서는 공개키 (Public Key)와 개인키 (Private Key) 가 필요하다는 얘기입니다. (RSA 방식을 클릭하시면 wikipedia의 설명 내용을 보실 수 있습니다. )

이러한 키를 생성하기 위한 응용 프로그램들은 여러가지가 있는데, 이 글에서는 테라텀을 이용해서 해당 키를 생성하고자 합니다. 그리고 보통 윈도우용 터미널 프로그램으로 테라텀을 가장 많이 사용하므로, 이 글에서도 테라텀을 이용하여 접속해 보도록 하겠습니다.

(여기서 얘기하는 테라텀은 SSH Clinet기능이 포함된 테라텀 프로를 의미합니다.)

테라텀 관련해서는 아래 글들이 있으니 참고 하시기 바랍니다.

- Tera Term pro 4.55 (테라텀 프로 4.55)
- Tera Term pro 4.55 (테라텀) 자동 로그인
- 테라텀 매크로를 이용한 자동 로그인 (TeraTerm Macro)
- VNC with SSH (테라텀프로 SSH이용)

먼저 테라텀 프로 (Tera Term Pro)를 실행시킵니다.

그리고 Setup -> SSH Key Generator 를 선택합니다.

사용자 삽입 이미지

SSH KeyGenerator


그럼 아래와 같은 화면이 나옵니다. 이번 테스트에서 사용할 것은 SSH2 protocol를 이용할 예정이므로, RSA 를 선택합니다. (RSA1은 SSH1 프로토콜을 사용할 때에 이용합니다.)

그리고 Generate 버튼을 클릭합니다. (Key passphrase를 입력하면 이 값을 가지고 암호화를 진행하는데, 여기서는 입력하지 않습니다. )

사용자 삽입 이미지

Key Generator


그리고 나서 "Save public key"버튼을 클릭하여 공개키(Public Key)를 저장하고, "Save private key"버튼을 클릭하여 개인키(Private Key)를 저장합니다.

(id_rsa.pub 가 Public Key 이고 id_rsa 는 Private Key 입니다.)

이렇게 해서 공개키(Public Key)개인키(Private Key) 가 생성되면 생성된 공개키(Public Key)인 id_rsa.pub 파일을 리눅스 (Linux) 서버로 옮겨야 합니다.

그리고 리눅스 (Linux) 서버에 접속해서 .ssh 디렉토리를 만들어야 합니다. 그리고 옮겨놓은 id_rsa.pub 파일을 아래 예제와 같이 authorized_keys로 변경합니다.

$ mkdir .ssh
$ cd .ssh
$ cp ../id_rsa.pub ./authorized_keys


이렇게 하고 나서 chmod 명령을 이용하여 authorized_keys 의 mode를 변경합니다.

$ chmod 700 authorized_keys

만약 변경하지 않고 SSH접속을 시도하면 아래 로그와 같이 에러가 발생합니다.

/var/log/secure

Aug 15 09:41:06 localhost sshd[3604]: Authentication refused: bad ownership or modes for
file /home/yourid/.ssh/authorized_keys

이제 준비가 다 되었습니다. 이제 테라텀 프로를 이용하여 접속해 보도록 하겠습니다.
(이 글의 예제에서는 리눅스 서버의 주소를 192.168.10.103으로 했습니다. ^^)

사용자 삽입 이미지

테라텀 SSH 접속


서버 IP를 입력하고 Service는 SSH를 선택합니다. 그리고 SSH version은 SSH2를 선택하시면 됩니다.
그럼 아래 그림과 같이 SSH Authentication 화면이 나옵니다.

User name에는 본인의 아이디를 입력합니다. (이 글에서는 yourid 가 아이디 입니다.)
그리고 공개키(Public Key)를 가지고 인증을 진행하기 때문에 Passphrase에는 아무것도 입력하지 않습니다.

이제 "Use RSA/DSA key to log in"를 선택하여 좀전에 만들었던 개인키 (Private Key)를 선택합니다.
(이 글에서는 Keys라는 디렉토리를 만들고 그 안에 key를 저장했기 때문에 "Keys\id_rsa" 라고 나옵니다.)

사용자 삽입 이미지

RSA authentication


이제 "OK"버튼을 누르면 접속이 됩니다.

앞서와 마찬가지로 /var/log/secure를 살펴보면 아래와 같이 정상적으로 접속이 된것을 확인 할 수 있습니다.

/var/log/secure

Aug 15 09:42:00 localhost sshd[3604]: Accepted publickey for yourid from 192.168.10.200 port 3081 ssh2
Aug 15 09:42:00 localhost sshd[3604]: pam_unix(sshd:session): session opend for user yourid by (uid=0)

이렇게 RSA방식을 이용하여 인증을 하는 것은 좀 더 안전하게 서버 접속을 하기 위해서 입니다. Telnet을 이용하는 것보다는 당연히 안전하고, SSH passphrase 방식을 이용하는 것 보다도 더 안전하다고 알려져 있습니다. 보안에 많이 신경을 쓰는 서버 운영자라면 이 방법을 이용하여 접속을 제한 할 수도 있을것입니다.

이상 테라텀 프로로 RSA 인증을 이용하여 SSH 접속하는 방법에 대하여 알아봤습니다.