Linux

[Ubuntu] Ubuntu(우분투) 20.04 SSH 접속 시 KEY를 사용하여 패스워드 입력 없이 로그인 하기

메바동 2021. 10. 10. 01:11
728x90

이전 포스팅에 sudo 명령어를 사용할 때마다 패스워드를 입력하는 것이 번거롭다고 했었는데, 그에 버금가게 귀찮은 것이 ssh 접속 시 패스워드를 입력하는 것이다.

 

이 귀찮은 패스워드 입력을 생략하려면 ssh key를 사용하게 되면 접속 시 패스워드를 매번 입력해 주지 않아도 된다.

 

 

 

1. 접속하려는 환경에 SSH 공개키 등록하기

 

우선 키를 사용하여 접속하기 위해서는 리눅스에 공개키를 등록해 주어야 한다.

 

/home/{접속하려는 계정}/.ssh/authorized_keys

 

접속하려는 계정 디렉토리의. ssh 폴더에 있는 authorized_keys에 공개키에 대한 정보가 담기게 되는데, 여기에 공개키를 등록해 주는 방법은 2가지가 있다.

 

1.2 편집기로 authorized_keys 편집하기

 

원시적인(?) 방법으로는 공개키의 값을 복사하여 authorized_keys 파일을 편집기로 열어 그냥 붙여 넣어주면 끝이 난다.

 

 

public 키를 편집기로 열어보면 이렇게 값이 보이는데 이 내용을 복사하여 

 

vi ~/.ssh/authorized_keys

 

로 파일을 편집기로 열어준 뒤

 

 

이렇게 값을 붙여 넣은 뒤 저장하면 끝이 난다.

.ssh 폴더가 없거나 authorized_keys 파일이 없을 경우는 그냥 생성해 주면 정상적으로 동작한다.

 

1.2 ssh-copy-id 이용하기

 

ssh-copy-id를 사용하면 쉽고 빠르게 공개키를 리눅스에 등록할 수 있다.

사용 방법은

 

ssh-copy-id -i {공개키 파일 경로 및 파일명} {접속할 계정}@{host}

 

를 사용하면 된다. 

 

물론 Windows에서 제공하는 OpenSSH에는 ssh-keygen처럼 제공하지 않는 기능인데 git CMD를 사용하면 ssh-copy-id를 사용할 수 있다.

 

 

위 경우는 키가 있는 경로로 이동하여 파일을 지정한 것이고, 굳이 이동하지 않고 경로를 적어 사용해도 된다.

 

 

이제부터 ssh 접속 시 키를 사용하여 패스워드 입력 없이 접속할 수 있게 되었다.

 

 

 

2. 패스워드를 사용한 접속 막기

 

이제 key를 사용한 ssh 접속을 설정하였으니 기존의 패스워드 입력을 통한 ssh 접속을 막는 것이 보안 상에도 좋다.

 

sudo vi /etc/ssh/sshd_config

 

를 사용하여 ssh 설정 파일을 열어준 뒤

 

PasswordAuthentication no

 

PasswordAuthentication 설정을 no로 설정해 준다.

 

 

저장을 한 뒤

 

sudo systemctl restart sshd

 

로 ssh 서비스를 재시작해주면

 

 

위와 같이 key를 사용하지 않는 접속을 허용하지 않게 된다.

728x90