ssh-keygen 공개키 인증

2021. 6. 9. 13:01개발노트

ssh-keygen 공개키 인증을 사용하면 ssh로 서버에 원격 접속할 때 비밀번호 입력 없이 접속 할 수 있다. 편할 뿐 아니라 보안 취약점을 해소 할 수 있다.

ssh key 생성하기

window, mac 모두 사용 가능하며 $ ssh-keygen 명령어로 키를 생성할 수 있다.

window는 기본 터미널이 아닌 git bash에서 가능

설치를 시작하면 아래와 같이 입력하라고 출력된다. 괄호 사이 값이 디폴트 값이다.

Enter file in which to save the key (/home/{USER_ID}/.ssh/id_rsa):[Enter]

Enter passphrase (empty for no passphrase): [패스워드입력]

Enter same passphrase again: [패스워드재입력]

public key 복사하기

$ ssh-copy-id [USER_ID]@[SSH Server Address]

키 값을 서버의 .ssh/authorized_keys 경로에 저장한다.

유저가 root가 아니라면 /home/{USER_ID}/.ssh/authorized_keys에 저장된다.

ssh config수정

Host ex.dev
    HostName 000.111.222.333
    User username
    Port 22
    IdentityFile /c/Users/User/.ssh/id_rsa

IdentityFile에 ssh key가 있는 경로를 추가하고 저장한다.

$ ssh ex.dev 하면 패스워드입력 없이 바로 서버에 접속 할 수 있다.

ssh password접속 차단

key를 등록했기 때문에 password를 사용한 접속은 필요하지 않다.

필수는 아니지만 보안을 강화하고 싶다면 password접속을 차단한다.

서버에서 아래와 같이 sshd_config를 수정한다.

$ sudo vim /etc/ssh/sshd_config

PasswordAuthentication no 로 변경

저장 후 service ssh restart