핵심 요약
SSH 서버 보안의 기본은 ① 키 인증으로 전환하고 비밀번호 로그인 끄기, ② root 직접 로그인 금지, ③ 접속 가능한 네트워크/사용자 제한, ④ fail2ban으로 무차별 대입 차단이다. 키 인증만 켜도 자동화 공격의 대부분이 무력화된다.
1. 핵심 설정(sshd_config)
PasswordAuthentication no # 키만 허용
PermitRootLogin no # root 직접 금지
PubkeyAuthentication yes
AllowUsers deploy # 허용 사용자 한정
변경 후 sshd -t로 문법 검사하고 새 세션으로 접속 확인 후 기존 세션을 닫는다.
2. 추가 방어
| 조치 | 효과 |
|---|---|
| fail2ban | 반복 실패 IP 차단 |
| 접속망 제한(Match Address) | 내부망만 허용 |
| 키 패스프레이즈 | 키 유출 시 2차 방어 |
3. 함정
- 비밀번호 인증을 끄기 전에 키 접속을 먼저 검증 — 안 그러면 잠긴다
- 설정 변경 후 기존 세션을 유지한 채 새 세션으로 테스트
- 키는 600 권한, authorized_keys는 644 — 권한 틀리면 무시됨
자주 묻는 질문
비밀번호 로그인을 끄면 잠길까 봐 무서워요.
먼저 키로 접속이 되는지 확인한 뒤, 기존 SSH 세션을 열어둔 채 새 세션으로 테스트하세요. 문제가 있으면 열린 세션에서 되돌릴 수 있습니다.
키를 넣었는데도 비밀번호를 물어봐요.
대개 권한 문제입니다. ~/.ssh는 700, authorized_keys는 600~644여야 하며, 소유자도 본인이어야 합니다. 서버 로그(/var/log/auth.log)에서 원인을 확인하세요.

댓글 0