10강 / 20강

SSH 굳히기 — 관리자의 문을 좁힌다

비밀번호 로그인 끄기 · root 차단 · 공개키

SSH 굳히기 — 관리자의 문을 좁힌다
SSH 는 서버로 들어오는 정문입니다. 이 문을 어떻게 잠그느냐가 전부입니다.

7강에서 무차별 대입으로 SSH 비밀번호가 뚫리는 걸 봤습니다. 강한 비밀번호로 늦출 수는 있지만, 근본 해결은 다릅니다 — 맞힐 수 있는 문 자체를 없애는 것입니다.

이번 강의는 SSH 설정(/etc/ssh/sshd_config)을 고쳐 관리 통로를 굳힙니다. 5강에서 배운 공개키가 여기서 실전으로 쓰여요.

공개키 인증 — 비밀번호 없이 들어가기

공개키 인증은 5강의 그 열쇠 짝을 씁니다. 공개키는 서버에 등록해 두고, 개인키는 내 노트북에만 둡니다. 로그인할 때 서버가 "이 개인키 가진 사람 맞아?"를 비밀번호를 주고받지 않고 확인해요. 네트워크에 비밀번호가 아예 안 흐릅니다.

개인키(id_ed25519)와 공개키(.pub) 둘이 생깁니다.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)

이제 비밀번호 문을 닫습니다

공개키로 들어갈 수 있게 됐으면, 비밀번호 로그인을 꺼도 됩니다. 그러면 7강의 무차별 대입이 시도할 곳조차 없어져요. 실습실에서 바꿔 봅시다.

PasswordAuthentication yes
맞힐 수 있는 문. 사전을 돌릴 수 있음
PasswordAuthentication no
비밀번호라는 문이 아예 없음. 사전이 소용없음
PermitRootLogin 과 PasswordAuthentication 값을 보세요.
🖥️ 내 가상 서버 브라우저 안에서 실행 (계산용)
SSH 굳히기 실습실 — 설정을 바꾸고 공격자 관점에서 효과를 확인
불러오는 중…

root 직접 로그인을 막는 이유

PermitRootLogin no 도 중요합니다. 두 가지 이유예요.

  • 공격 대상 축소 — 모든 서버에 'root'라는 계정이 있으니, 공격자는 root 만 노리면 됩니다. 이걸 막으면 공격자는 계정 이름부터 알아내야 해요.
  • 책임 추적 — 모두가 root 로 들어오면 로그에 전부 'root'로 찍혀 누가 무엇을 했는지 알 수 없습니다. 일반 계정으로 들어와 sudo 로 작업하면, 감사 로그(18강)에 '원래 누구였는지'가 남아요.
설정에 따라 문 앞에서 막히는지 보세요.
🥷 공격자 브라우저 안에서 실행 (계산용)
🤔 확인 문제
SSH 무차별 대입을 근본적으로 막는 방법은?
🤔 확인 문제
PermitRootLogin no 로 root 직접 로그인을 막으면 얻는 이점이 아닌 것은?