강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

SSH(Secure Shell)_공개키인증접속(3)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

SSH(Secure Shell)


목차

 공개키 암호화란?

 리눅스에서의 사용자키를 이용한 인증

 ssh-agent 의 이용

 공개키 사용자인증(윈도우)

 참고문헌 또는 URL

 

공개키암호화란?


공개키 암호화에는 공개키와 개인키 두쌍이 한으로 존재한다. 공개키는 모든사람에게 공개하고, 개인키는 자기만 알고있는 키다. 공개키로 암호화한 텍스트는 해당 개인키를 갖고있는 사람만이 복호화해서 볼수 있고, 반대로 개인키로 암호화한 텍스트는 공개키로 복호화해서 볼수있다.

공개키를 이용한 ssh로그인은 두번째의 개인키로 암호화한 텍스트를 공개키로 복호화하는 경우이다.

즉 개인키를 소유한 당사자만 암호화할수 있는것이며, 패스워드로 인증하는대신에 개인키로 인증하는것이다.

공개키쌍을 생성할때 패스구문도 입력한다면 인증절차에 공개키와 패스구문이 둘다 사용되므로 이중보안장치가 되는것이다.

키생성시에 패스구문을 입력하지않고 엔터로 대체하면 그냥 개인키를 이용해서 인증을 하게되고 접속시에 아무런비밀번호도 묻지않고 접속된다.
 

리눅스에서의 사용자키를 이용한 인증


1. RSA key를 만든다.


1.1.1.1. [fubi@tsc13 ~]

1.1.1.2. $ ssh-keygen -t rsa

1.1.1.3. Generating public/private rsa key pair.

1.1.1.4. Enter file in which to save the key (/home/fubi/.ssh/id_rsa): 엔터

1.1.1.5. Enter passphrase (empty for no passphrase): 엔터

1.1.1.6. Enter same passphrase again: 엔터

1.1.1.7. Your identification has been saved in /home/fubi/.ssh/id_rsa.

1.1.1.8. Your public key has been saved in /home/fubi/.ssh/id_rsa.pub.

1.1.1.9. The key fingerprint is:

1.1.1.10. 46:5d:6f:46:a8:9a:da:d5:da:76:8c:3c:0e:18:d4:d7 fubi@tsc13


키를 생성할때 만일 DSA키를 사용한다면 -t dsa , ssh1을 사용한다면 -r rsa1 이라고 입력하면된다.ssh1을 사용한다면 얼른 업그레이드 하는것이 현명하다.

이 명령의 결과로 ~/.ssh/id_rsa(개인키) 와 ~/.ssh/id_rsa.pub(공개키) 가 생성된다

이 두 키쌍을 특정서버에 복사하여 사용하려면 다음과같이 한다


1.1.1.11. $ ssh server "mkdir .ssh; chmod 0700 .ssh"

1.1.1.12. $ scp .ssh/id_rsa.pub server:.ssh/authorized_keys2


당연히 server 자리에는 사용할 서버명을 적는다

공개키를 암호없이 들어가고 있는 시스템의 .ssh/authorized_keys 파일에 append한다.

파일이 없으면 그냥 공개키 파일을 복사해주면 된다. 공개키는는 아무나 봐도 되니 mail로 보내던, ftp로 보내던, 홈페이지에 올려놓구 받던 편한데루 하면 되겠다.


이제부터는 ssh servername 만 입력하면 바로 로그인된다.


일부사람들은 공개키를 사용하는것이 잠재적으로 보안에 위협이 된다고 새악한다. 제3자가 개인키를 알아내기만 하면 해당 서버에 쉽게 접근할수 있다는것이다. 물론 이말이 사실이기는 하지만, 패스워드 인증도 다를바가 없다.
 

ssh-agent 의 이용


ssh-agent 란 인증이 필요할때마다 인증서를 전달해주는 개인키 관리도구이다.

만일 A에서 B로 접속하는것과 A에서C로 접속하는것은 공개키인증을 이용해서 잘된다고 하자. 이제 A에서 B로 접속한 상태에서 C로 접속을 한다면 그때는 패스워드 인증을 할수밖에 없을것이다. 이때 ssh-agent 를 이용하면 모든서버에 개인키를 복사해두지 않아도 키인증을 통한 접속을 할수있도록 해준다.

자세한 내용은 맨페이지를 참고하기 바란다.
 

공개키 사용자인증(윈도우)


Xshell은 사용자 인증을 위해 비밀번호를 입력하는 방법을 대체하는 공개 키 사용자 인증을 지원합니다. 공개 키 사용자 인증을사용하기 위해, 사용자는 공개 키(모두에게 공개 가능한)와 비밀 키(사용자만이 소유하는)로 이루어진 사용자 키 쌍을 생성해야합니다. 공개키 인증이 진행될 때, 비밀 키는 사용자 서명을 만들기 위해 Xshell에 의해 사용되며, 공개 키는 그 서명을확인하기 위해 SSH 서버에 의해 사용됩니다. 즉, 비밀 키를 소유함으로써 사용자는 자신을 인증할 수 있습니다. 또한, 인증을받기 위해서 사용자는 자신의 공개 키를 서버에 등록해 두어야 합니다.

 사용자 키는 SSH 서버, Xshell 양쪽에서 생성이 가능합니다. 만약서버쪽에서 생성되었다면, 사용자는 비밀 키를 Xshell의 가져오기 기능을 이용하여 Xshell 비밀 키 저장소에 등록해야합니다. 만약 Xshell에서 생성되었다면, 사용자는 공개 키를 서버에 등록하여야 합니다.


사용자키만들기

1. [도구] 메뉴에서, [사용자 키 생성 마법사]를 선택합니다.


UNI00000bfc0c73.gif

UNI00000bfc0c75.gif


2. 키 종류 리스트에서 DSA 또는 RSA 를 선택합니다. SSH1 프로토콜은 RSA 키 만을 지원하며 SSH2 프로토콜은 RSA 와 DSA 모두를 지원합니다. 원격 서버가 지원하는 키 종류를 선택해야 합니다.

3. 키 길이 리스트에서 키 길이를 선택합니다. 키 길이가 길면 보다 안전하고, 짧으면 처리 속도가 빨라집니다. 일반적인 경우 1024 비트가 적당합니다.

4. [다음]을 선택하여 키 생성 단계로 진행합니다


UNI00000bfc0c77.gif


5. 키 생성이 성공적으로 끝나고 나면, [다음]을 선택하여 사용자 키 정보 입력 화면으로 진행합니다
UNI00000bfc0c79.gif

6. [이름]에는 생성된 키의 이름을 입력합니다. 사용자 키는 파일로 저장되므로 키 이름은 파일명으로 유효한 문자로 이루어져야 합니다.

7. [암호]에는 사용자 키의 암호를 입력합니다. 키를 사용할 때 마다 필요하므로 꼭 기억해 두어야 합니다.

8. [확인]에는 위에서 입력한 암호를 다시 한번 입력합니다.

9. [다음]을 선택하여 다음 공개 키 등록 단계로 진행합니다

 이상, 키 생성 과정이 끝나고 다음 단계에서는 생성된 사용자 키의 공개 키 부분을 원격 서버에 등록하는 과정을 설명합니다


공개키를 서버에 등록하기

 이번 단계에서는 생성된 사용자 키의 공개 키 부분을 원격 서버에 등록합니다. 공개 키는 사용자 키 대화 상자를 통해 나중에 서버에 등록 할 수도 있습니다. 사용자 키는 Xshell의 사용자 키 데이터베이스에 저장됩니다.


UNI00000bfc0c7b.gif


• [공개 키 형식] 리스트에서 SSH1, SSH2 - OpenSSH, 그리고 SSH2 - IETF SECSH 중 하나를 선택합니다.

• 아래쪽 텍스트 상자에는 선택된 형식의 공개 키가 나타날 것입니다. 나타난 공개 키를 복사하거나 파일로 저장하여 원격 서버에등록합니다. 서버에 따라 등록하는 방법이 조금씩 다릅니다. 대부분의 경우 아래의 설명을 따라 등록하시면 됩니다.

EMB00000bfc0c6e.gif

SSH1: 공개 키를 $HOME/.ssh/authorized_keys 파일에 복사해 넣습니다.

EMB00000bfc0c6f.gif

SSH2 - OpenSSH: OpenSSH 서버들은 이 형식을 사용합니다. 공개 키를 $HOME/.ssh/authorized_keys2 파일에 복사해 넣습니다.

EMB00000bfc0c70.gif

SSH2- IETF SECSH: ssh.com의 서버와 같이 몇몇 상용 SSH 서버들은 이 형식을 사용합니다. 공개 키를mypublickey.pub 과 같이 고유한 이름으로 저장하여 $HOME/.ssh2 디렉토리에 복사합니다.$HOME/.ssh2/authorization 파일에 다음 라인을 추가합니다:

Key mypublickey.pub

비밀키 가져오기


1. 도구 메뉴의 [사용자 키 관리자...]를 선택하여 사용자 키 대화 상자를 엽니다.

UNI00000bfc0c7d.gif

2. [가져오기]를 클릭합니다. [열기] 대화 상자가 나타납니다.

3. 가져오려는 비밀 키 파일을 선택한 후 [확인]을 클릭합니다. 사용자 키 가져오기 대화 상자가 나타납니다.

UNI00000bfc0c7f.gif

4. [파일 종류] 리스트에서, 지정된 파일의 종류를 선택합니다.

참고: 지원되는 파일 종류는 OpenSSH-RSA, OpenSSH-DSA, SSH1-RSA 및 Xshell User Key 입니다. Auto Detect가 선택되면 Xshell이 자동으로 종류를 결정합니다.

5. [키 암호] 상자에 비밀 키의 암호를 입력합니다.

6. [확인]을 선택합니다.
 

참고문헌 또는 URL


http://www.ssh.com/

 http://openssh.com/

『SSH, The Secure Shell: The Definitive Guide』 Daniel J. Barrett &Richard E. Silverman, O'REILLY

http://network.hanbitbook.co.kr/view.php?bi_id=547

http://www.faqs.org/faqs/computer-security/ssh-faq/

http://www.openssh.com/faq.html

http://www.onsight.com/faq/ssh/ssh-faq.html

 /_Data/Linux_old/linux/rootman/page01.htm

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,056 명
  • 현재 강좌수 :  35,908 개
  • 현재 접속자 :  235 명