티스토리 뷰

반응형

SSH(Secure SHell)는 서버에 접속하기 위한 사실상의 표준이 되었다. SSH는 telnet 연결에 비해 더 안전하고 통신을 암호화하기 때문이다. SSH로 서버에 접속하기 위해서는 계정의 id와 비밀번호를 입력하는 방법이 많이 사용되지만 SSH key를 사용하는 방법 또한 많이 사용된다. SSH key를 사용하면 매번 id와 비밀번호를 입력하지 않아도 되며, SSH key가 유출되지 않는 한 서버가 해킹될 우려를 하지 않아도 되는 장점이 있다. SSH key가 유출되더라도 SSH key에 passphrase를 등록했다면 SSH key를 보호할 수 있다.

 

처음 SSH를 써보거나, SSH에 익숙하지 않은 사람들은 SSH key를 어떻게 만들고, 어떻게 사용하는지 모르기 마련이다. 이곳에 SSH key를 만들고 서버에 등록한 뒤 접속하여 더욱 쉽게 SSH를 사용해 보자.

 

Step 1. 내 컴퓨터에서 SSH key를 생성하자

SSH key는 ssh-keygen 명령어를 사용하여 생성할 수 있다. 해당 명령어를 실행하면 key를 어디에 저장할지, passphrase는 어떻게 설정할지를 물어본다. key는 보통 ~/.ssh 경로에 생성하며 passphrase는 비워둔다.(매우 중요한 시스템인경우 반드시 passphrase를 입력하도록 하자)

$ ssh-keygen -t rsa -b 2048
Enter file in which to save the key (~/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
...

Step 2. 서버에 공개키 등록하기

step 1을 거쳐 SSH key를 생성하면 id_rsa 파일과 id_rsa.pub 파일이 생성된다. id_rsa는 서버에 접속할 때 사용하는 개인키이고 id_rsa.pub 파일은 서버에 등록할 공개키이다. 우선 cat 명령을 사용하거나 편집기로 id_rsa.pub 파일의 내용을 복사한다. 그 뒤 서버에 접속하여 home directory 아래의 .ssh 폴더에 있는 authorized_keys 파일(~/.ssh/authorized_keys)에 복사한 공개키를 붙여넣기하자.

$ echo "[붙여넣은 공개키]" >> ~/.ssh/authorized_keys

 

home directory 아래의 .ssh 폴더나 authorized_keys 파일이 없는 경우 생성해 주면 되며, 이 때 각 폴더와 파일의 퍼미션을 바꾸어 주어야 한다.

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

Step 3. 내 컴퓨터에서 서버에 SSH key 를 사용하여 접속하기

SSH key를 사용하여 SSH 연결을 수행하는 방법은 password를 사용하는 방법과 거의 똑같다. -i 옵션을 사용하여 SSH 개인키 파일을 지정해 주기만 하면 된다.

$ ssh -i ~/.ssh/id_rsa [SSH 계정]@[서버 IP]
반응형
댓글