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