SSH 공개 키 인증 방법 설정

SSH에서 패스워드 인증을 비활성화하고 공개 키 인증만을 허용

SSH에서 패스워드 인증을 비활성화하고 공개 키 인증만을 허용하려면, SSH 서버의 설정을 변경해야 합니다. 이를 통해 SSH 접속 시 비밀번호 입력 방식이 차단되고, 공개 키로만 인증이 가능하게 됩니다.

1. SSH 설정 파일 수정

SSH 설정 파일 /etc/ssh/sshd_config를 수정하여 패스워드 인증을 비활성화하고, 공개 키 인증을 활성화할 수 있습니다.

  1. SSH 설정 파일 열기:
sudo nano /etc/ssh/sshd_config
  1. 패스워드 인증을 비활성화하고 공개 키 인증을 활성화하는 설정 변경:

아래의 항목들을 찾아서 수정합니다:

  • 패스워드 인증을 비활성화:
PasswordAuthentication no
  • 공개 키 인증을 활성화:
PubkeyAuthentication yes

중요 : PasswordAuthenticationyes로 설정되어 있으면 비밀번호를 통한 인증이 가능해지므로 반드시 no로 변경해야 합니다.

  1. 필요한 경우 루트 사용자로의 패스워드 인증 차단: 만약 루트 사용자로의 패스워드 기반 로그인을 차단하고 싶다면 다음 항목도 수정해야 합니다:
PermitRootLogin prohibit-password

이 설정은 루트 사용자로 패스워드를 사용한 로그인은 차단하고, 공개 키를 이용한 로그인은 허용합니다.

  1. 설정을 저장하고 편집기 종료:

설정을 마친 후, 파일을 저장하고 닫습니다.

  • SSH 서버 재시작

설정을 적용하려면 SSH 서버를 재시작해야 합니다.

sudo systemctl restart sshd
2. 서버에 공개 키를 설정

서버에 공개 키가 설정되지 않은 상태에서 패스워드 인증을 비활성화하면 접속이 불가능해질 수 있습니다. 따라서 미리 서버에 공개 키를 설정해야 합니다.

  1. 로컬 컴퓨터에서 SSH 키 생성 (키가 없을 경우):
ssh-keygen -t rsa -b 4096

기본 설정을 따르고 id_rsa라는 개인 키와 id_rsa.pub라는 공개 키를 생성합니다.

  1. 공개 키를 서버에 복사:
ssh-copy-id user@server_ip

user는 서버에서 사용할 계정 이름이고, server_ip는 접속할 서버의 IP 주소입니다.
이 명령은 로컬 컴퓨터의 ~/.ssh/id_rsa.pub 공개 키를 서버의 ~/.ssh/authorized_keys에 추가합니다.

  1. 설정 확인

모든 설정을 완료한 후, 서버에 다시 접속해보면 공개 키 인증 방식으로만 SSH 접속이 가능하게 됩니다. 패스워드 인증은 허용되지 않으며, 공개 키가 등록되지 않은 경우에는 접속이 차단됩니다.

『 출처 – ChatGPT 』