From T3_KR_KNU
Revision as of 04:31, 22 December 2015 by Hanbi (Talk | contribs) (key 생성하기)

Jump to: navigation, search

ssh public key authentication

ssh public key 인증은 password 인증에 비해서 보다 안전하고 편리한 기능을 제공합니다.

key 생성하기

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/b/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/b/.ssh/id_rsa.
Your public key has been saved in /home/b/.ssh/id_rsa.pub.

반드시 passphrase를 입력하시기를 권장합니다. 올바르게 public key 인증 설정이 완료되었다면 앞으로 계정 생성때 만들어둔 패스워드가 아니라 지금 key 생성시 만든 패스워드를 이용하여 인증을 하게 됩니다. 따라서 단순히 패스워드만으로 인증되는 것보다, public key + private key + 패스워드 조합인 public key 인증방식이 더 높은 보안레벨을 제공하게 됩니다.

공개되어도 상관없는 public key(~/ssh/id_rsa.pub)와는 달리 private key( ~/.ssh/id_rsa)는 관리에 각별한 주의가 필요합니다.

더 나은 암호화 레벨을 원한다면

기본값인 2048 bit key보다 4096 bit key를 사용하여 암호화레벨을 올릴 수 있습니다.

ssh-keygen -t rsa -b 4096

public key 전송

접속하고자하는 서버에 public key 전송.

ssh-copy-id username@host

위의 명령은 public key 파일을 접속하고자 하는 서버의 ~/.ssh/authorized_keys 파일로 전송하는 것과 동일한 기능을 합니다.

Permission denied (publickey) 오류가 발생한다면

~/.ssh/authorized_keys  파일의 퍼미션을 수정해줍니다.
chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

ssh 접속시에 -v 옵션을 사용하면 더 자세한 debug 정보를 확인 할 수 있습니다.

ssh -v username@host