SSH Key란?

서버에 접속할 때 비밀번호 대신 Key를 제출하는 방식입니다.



SSH Key를 사용하는 이유?

  • 비밀번호 없이 자동으로 서버에 접속하고 싶을 때
  • 비밀번호 보다 높은 수준의 보안을 필요로 할 때



SSH Key 동작 방식

SSH key는 공개 키(Public Key)와 비공개 키(Private Key)로 이루어져 있습니다.

SSH Key의 동작 방식은 비공개 키(id_rsa)는 로컬 컴퓨터 (Mac)에 있어야 하고, 공개 키(id_rsa.pub)는 원격 서버(Linux)에 authorized_keys에 있어야 합니다.




클라이언트 (Mac OS)


SSH Key 생성 (Unix 기준)

Mac ssh-keygen이라는 명령어를 이용하여 생성할 수 있습니다.

터미널을 실행하여 아래와 같이 입력합니다. -t rsa는 암호화 방식으로 키를 생성한다는 의미입니다.

Enter file in which to save the key (/Users/leby.y.kim/.ssh/id_rsa): (엔터)

Created directory '/Users/leby.y.kim/.ssh'.

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

Enter same passphrase again:(엔터)


첫번째는 SSH Key 생성 디렉터리를 물어서 엔터를 누르면 해당 위치에 생성됩니다.

두번째는 암호를 설정하는 부분인이고 아무것도 입력하지 않고 엔터를 누르면 비밀번호 없이 생성하겠다는 의미입니다.



SSH Key 생성 확인

디렉터리를 따로 변경하지 않았다면 아래에 생성되어 있을 것입니다.

drwx------   4 leby.y.kim  staff   128  3 18 12:27 .

drwxr-xr-x+ 63 leby.y.kim  staff  2016  3 18 12:31 ..

-rw-------   1 leby.y.kim  staff  1675  3 18 12:27 id_rsa

-rw-r--r--   1 leby.y.kim  staff   421  3 18 12:27 id_rsa.pub

id_rsa : 비공개 키(Private Key), 절대로 타인에게 노출되면 안되는 키입니다.

id_rsa.pub: 공개 키(Public Key), 접속하려면 원격 서버에 authorized_keys로 저장되는 키입니다.



SSH Key 파일 업로드

ftp로 파일을 업로드해도 되지만, 간편하게 scp 명령어를 사용하여 Command로 업로드 하려고 합니다.

Are you sure you want to continue connecting (yes/no)? yes

root@원격 서버 아이피 password: (비밀번호 입력)

id_rsa.pub        100%  421    89.1KB/s   00:00





서버 (Linux)


SSH Key 파일 저장

이제 서버에 접속하여 ~/.ssh 디렉터리가 있는지 확인 후 없으면 아래 명령어를 사용하여 생성하고 권한을 변경합니다.


그리고 아까 클라이언트에서 전송한 id_rsa.pub 파일을 authorized_keys에 추가해줍니다.

아래 명령어를 사용하여 추가하면 됩니다.





클라이언트 SSH 접속 확인

Mac 터미널을 실행하여 다음 명령어를 입력합니다.

비밀번호 없이 서버로 접속이 되었다면 성공적으로 SSH Key 등록을 완료한 것 입니다.