상세 컨텐츠

본문 제목

ssh pub key 서버 로그인 간단히 하기 및 ssh key 생성 및 등록 방법

IT : Ubuntu

by 인포개더러 2014. 2. 6. 00:33

본문



ssh pub key 서버 로그인 간단히 하기 및 ssh key 생성 및 등록 방법


ssh key 는 Secure Shell 의 약자로 다른 컴퓨터(서버)에 로그인 하고 명령을 실행하는 방법을 제공하는 프로토콜 및 응용프로그램을 말하는 것 입니다. 기존의 telnet, rsh 의 보안을 위해 만들어진 것이지요.



그런데 ssh key 는 매번 로그인 때 마다 비밀번호를 요구하고 하는 방법을 사용하지 않아도 로그인 할 수 있게 만들어줍니다.


그럼 먼저 ssh key 를 생성하는 방법을 알아야겠죠? ssh key를 생성하는 방법은 기본적으로 Ubuntu 에 설치가 되어 있는 명령어로 생성합니다.


$ ssh-keygen -t rsa


-t 옵션은 암호화 방식을 지정하는 것 입니다. (일반적으로 rsa 가 사용됩니다.)

이후 나오는 문장을 읽어보고 엔터를 치면 모든 과정이 끝납니다.



생성이 된 key를 확인해 보려면 


$ cat ~/.ssh/id_rsa.pub


라고 입력하면 생성된 ssh public key를 볼 수 있습니다.


그럼 이 파일을 서버에 저장해 놓으면 로그인 할 때 마다 비밀 번호를 넣지 않아도 된다고 하는데 서버에는 어디에 어떤 방법으로 넣어야 할까요?


일반적으로 ssh public key 를 서버에 저장하는 방법은 scp 를 사용하여 저장하거나 서버에 로그인 후 ~/.ssh/authorized_keys 파일을 직접 edit 하여 저장할 수도 있습니다. authorized_keys 파일은 서버에 접근할 수 있는 client 의 public key를 모아두는 파일입니다.


이 파일을 전송하기 위해서 scp 를 사용한다면


$ scp ~/.ssh/id_rsa.pub server_id@serverIP:~/client_rsa.pub


라고 입력하여 server로 client의 public key 파일을 복사할 수 있습니다.

이후 서버에서 ~/.ssh 폴더가 없다면 만들어주고 permission 은 700 으로 ($ chmod 700 .ssh) 설정하여줍니다.

그리고 client_rsa.pub 파일을 서버의 ~/.ssh/authorized_keys 파일에 추가해 줍니다.


$ cat client_rsa.pub >> ~/.ssh/authorized_keys


이 후 ssh 접속시 password 를 입력할 필요 없이 서버에 접속 할 수 있습니다.


이렇게 하는 과정을 더 쉽게 하기 위해서는 ssh-copy-id 라는 명령어를 사용할 수 있습니다.


$ ssh-copy-id server_id@serverIP


라고 입력하면 비밀번호를 물어본 후 자동으로 client 의 ~/.ssh/id_rsa.pub 파일을 서버에 ~/.ssh/authorized_keys 추가하여 줍니다.



특정 위치의 public key를 사용하고 싶다면 


$ ssh-copy-id -i pub_key server_id@serverIP 


명령을 사용하면 됩니다.


이상 ssh pub key 서버 로그인 간단히 하기 및 ssh key 생성 및 등록 방법에 대한 글 이였습니다.



관련글 더보기