Server 3편 – SSH 키 기반 인증 완전 실습...

[SSH 실무 완전정복] 3편 – SSH 키 기반 인증 완전 실습 (비밀번호 로그인 차단)

-

- Advertisment -spot_img

왜 SSH 키 기반 인증이 필수인가?

SSH 접속을 비밀번호 방식 그대로 운영하는 서버는
실무 기준으로 보면 거의 “열려 있는 서버”에 가깝습니다.

실제 운영 서버 로그를 보면 다음과 같습니다.

  • 하루 수천 건의 로그인 시도
  • root, admin, test 계정 무작위 공격
  • 사전 대입(Brute Force) 시도 반복

비밀번호는 언젠가 뚫린다고 가정해야 합니다.

그래서 실무 서버에서는 반드시 다음 원칙을 따릅니다.

SSH 키 기반 인증 사용
비밀번호 로그인 차단

이번 글에서는
이 원칙을 실제 서버에 적용하는 전 과정을 다룹니다.


SSH 키 기반 인증 구조 이해

SSH 키 인증은 쌍(pair) 으로 작동합니다.

구분역할
개인키 (Private Key)내 PC에 보관
공개키 (Public Key)서버에 등록
  • 개인키는 절대 외부 유출 금지
  • 공개키는 서버에 저장되어도 안전

서버는 “공개키와 맞는 개인키를 가진 사용자”만 허용합니다.


1단계 – SSH 키 생성 (클라이언트 PC)

Mac / Linux 기준

터미널에서 다음 명령어를 실행합니다.

ssh-keygen

기본 질문이 순서대로 나옵니다.

Enter file in which to save the key (/Users/user/.ssh/id_rsa):

엔터 (기본 경로 사용)

Enter passphrase (empty for no passphrase):

엔터 또는 비밀번호 입력 (실무에서는 입력 권장)

생성 결과:

~/.ssh/id_rsa        ← 개인키
~/.ssh/id_rsa.pub    ← 공개키

2단계 – 서버에 공개키 등록

방법 1. ssh-copy-id (가장 쉬운 방법)

ssh-copy-id ubuntu@서버IP
  • 서버 비밀번호 입력
  • 자동으로 공개키 등록

접속이 가능한 상태라면 이 방법이 가장 안전합니다.


방법 2. 수동 등록 (실무에서 많이 사용)

1) 공개키 확인

cat ~/.ssh/id_rsa.pub

출력된 전체 내용을 복사합니다.


2) 서버 접속 후 등록

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

공개키 붙여넣기 → 저장

chmod 600 ~/.ssh/authorized_keys

권한이 틀리면 접속 자체가 실패합니다.


3단계 – 키 기반 접속 테스트

서버에서 로그아웃 후 다시 접속합니다.

ssh ubuntu@서버IP
  • 비밀번호 없이 접속되면 성공
  • 또는 키 비밀번호만 요구됨

이 단계에서 반드시 테스트해야 합니다.


4단계 – 비밀번호 로그인 차단 (중요)

이 단계는 키 접속이 정상 확인된 후에만 진행하세요.

SSH 설정 파일 수정

sudo nano /etc/ssh/sshd_config

아래 항목을 찾아 수정합니다.

PasswordAuthentication no
ChallengeResponseAuthentication no

root 로그인도 함께 차단 권장:

PermitRootLogin no

SSH 서비스 재시작

sudo systemctl restart sshd

또는

sudo service ssh restart

실무 검증 테스트 (필수)

다른 터미널에서 일부러 테스트합니다.

ssh 다른계정@서버IP

결과:

Permission denied (publickey)

정상입니다.
비밀번호 로그인 완전 차단 성공.


실무에서 자주 발생하는 실수 TOP 5

  1. 키 접속 테스트 안 하고 비밀번호 차단
  2. authorized_keys 권한 오류
  3. 다른 계정에 키 등록
  4. 개인키 분실
  5. root 로그인 허용 유지

이 중 하나라도 걸리면 서버 접근 불가 사고로 이어집니다.


실무 운영 팁 (중요)

  • 개인키는 PC + 암호화된 백업 2중 보관
  • 팀 작업 시 계정별 키 분리
  • 퇴사자 키 즉시 제거
  • Bastion 서버 구조 고려

SSH 전체 흐름과 보안 구조는 아래 Pillar 글에서 확인하세요.

[SSH 실무 완전정복] 접속부터 보안·운영 한방 정리 가이드

이전 글:

▶ 다음 편 예고

다음 편에서는
실제 공격을 줄이는 핵심 설정을 다룹니다.

[SSH 실무 완전정복] 4편 – SSH 포트 변경과 기본 보안 설정 (실무 필수)

  • 포트 변경 이유
  • 실무 권장 포트
  • 방화벽 연동

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest news

[SSH 실무 완전정복] 2편 – 리눅스 서버 SSH 접속 방법 총정리

왜 SSH 접속 방법을 정확히 알아야 할까? SSH는 서버 운영의 가장 기본이자 가장 자주 사용하는 작업입니다.하지만 실무에서는 의외로 다음과 같은...

[SSH 실무 완전정복] 1편 – SSH란 무엇인가? 서버 접속의 기본 개념

SSH란 무엇인가? SSH(Secure Shell)는원격 서버에 안전하게 접속하기 위한 표준 프로토콜입니다. 리눅스 서버, 클라우드 인스턴스, NAS, 네트워크 장비까지운영자가 직접 로그인해야 하는 거의...

[SSH 실무 완전정복] 접속부터 보안·운영 한방 정리 가이드

SSH란 무엇이며 왜 중요한가 SSH(Secure Shell)는 리눅스 서버 운영의 출발점이자가장 많이 공격받는 1순위 서비스입니다. 특히 헤드리스 환경에서는 모든 운영을 SSH로 할...
- Advertisement -spot_imgspot_img

Must read

- Advertisement -spot_imgspot_img

You might also likeRELATED
Recommended to you