1.시스템&인프라/Ubuntu

13. SSH 공개키 인증 설정하기: 비밀번호 로그인 차단

쿼드큐브 2025. 3. 30. 09:01
728x90

SSH 공개키 인증을 설정하면 비밀번호 없이 안전하게 서버에 접속할 수 있습니다. 비밀번호 로그인을 차단함으로써 무차별 대입 공격을 방지하고, 보안을 한층 강화할 수 있습니다.
 

SSH 공개키 인증 설정하기: 비밀번호 로그인 차단

 

목차

1. SSH 공개키 인증이란?

2. 클라이언트에서 SSH 키 생성하기

3. 서버에 공개키 등록하기

4. SSH 설정 변경(공개키 인증만 허용)

5. SSH 접속 테스트

관련 글 링크

 
 

1. SSH 공개키 인증이란?

SSH 공개키 인증은 비대칭 암호화 방식으로, 클라이언트에서 생성한 개인키(Private Key)와 공개키(Public Key)를 기반으로 서버 인증을 수행합니다.

  • 공개키는 서버에 등록
  • 개인키는 클라이언트에 안전하게 보관

비밀번호 인증보다 보안성이 뛰어나며, 자동화된 스크립트 실행 시에도 유리합니다.
 
 

2. 클라이언트에서 SSH 키 생성하기

공개 키 인증만 허용하면 비밀번호 로그인(PasswordAuthentication)을 차단하여 보안이 강화됩니다.
PowerShell (Windows) 또는 터미널 (Linux/macOS)에서 다음 명령을 실행합니다.

ssh-keygen -t rsa -b 4096 -C "tvuser@172.20.205.156"

 
키쌍을 저장할 경로를 선택(~/.ssh/id_rsa)합니다. Enter(기본위치) 키를 눌러 계속 진행합니다.
생성 파일:

  • id_rsa: 개인키 (절대 외부에 유출 금지)
  • id_rsa.pub: 공개키 (서버에 등록)

패스프레이즈를 추가하면 보안 강화할 수 있습니다. (선택사항)

 
 

3. 서버에 공개키 등록하기

◆ 방법 1: ssh-copy-id 사용 (Linux/Mac)

  • ssh-copy-id 명령어는 Ubuntu 및 Linux에서 사용하는 명령어입니다
  • Windows PowerShell이나 CMD에서는 기본적으로 제공되지 않습니다.
ssh-copy-id -i ~/.ssh/id_rsa.pub tvuser@172.20.205.156

 
◆ 방법 2: 수동 등록 (모든 OS에서 가능)

  • 클라이언트에서 id_rsa.pub 내용을 복사한 후, 서버에 접속하여 다음 명령 실행:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys   # 또는 nano 사용
  • 내용 붙여넣기 후 저장:
chmod 600 ~/.ssh/authorized_keys

 
 

4. SSH 설정 변경(공개키 인증만 허용)

SSH 설정 파일(/etc/ssh/sshd_config)을 수정하여 비밀번호 로그인 차단 + 공개 키 인증만 허용합니다.

#sudo vi /etc/ssh/sshd_config

# 공개 키 인증 활성화
PubkeyAuthentication yes

# 비밀번호 로그인 차단
PasswordAuthentication no

# 루트 로그인 차단 (선택 사항)
PermitRootLogin prohibit-password

# Challenge-Response 인증 차단 (보안 강화)
KbdInteractiveAuthentication no

# PAM 인증 비활성화 (선택 사항, 일부 환경에서는 유지 필요)
UsePAM no

 
설정 적용:

sudo systemctl restart ssh

 
 

5. SSH 접속 테스트

클라이언트에서 SSH 접속:

개인키(~/.ssh/id_rsa)가 자동으로 사용됩니다.
패스프레이즈를 설정한 경우, 입력 후 접속됩니다.
 


SSH 공개키 인증 설정 방법을 처음부터 끝까지 정리해보았습니다.
공개키 인증은 보안 강화를 위한 필수 설정이며, 서버 관리의 기본입니다.
 
 
 

관련 글 링크

2025.03.29 - [1.시스템&인프라/Ubuntu] - 12. Ubuntu에서 SSH 서버 설치 및 보안 설정

728x90