SSH 공개키 인증을 설정하면 비밀번호 없이 안전하게 서버에 접속할 수 있습니다. 비밀번호 로그인을 차단함으로써 무차별 대입 공격을 방지하고, 보안을 한층 강화할 수 있습니다.
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 서버 설치 및 보안 설정
'1.시스템&인프라 > Ubuntu' 카테고리의 다른 글
16. Ubuntu에 원격 데스크탑(RDP) 설정하고 접속하는 방법: xrdp (0) | 2025.04.30 |
---|---|
14. Ubuntu에서 zip/unzip 설치 및 사용법 정리 (0) | 2025.04.08 |
12. Ubuntu에서 SSH 서버 설치 및 보안 설정 (0) | 2025.03.30 |
11.Ubuntu에서 Netplan으로 고정 IP 및 DHCP 설정하기 (0) | 2025.03.29 |
10. 네트워크 관리 명령어 정리: iproute2 (0) | 2025.03.29 |