SSH 강화: 키, 포트, 제한
sshd를 설정하는 방법: 키 전용 로그인, 사용자와 주소 제한, 포트 변경, 그리고 그 과정에서 접속을 잃지 않는 방법을 설명해요.
업데이트 2026년 8월 23일
SSH는 매일 사용하는 머신으로 들어가는 유일한 문이며, 자동화된 무차별 대입 공격의 주요 표적이에요. 한 번만 설정해 두면 그 뒤로는 신경 쓸 필요가 없어요.
모든 수정은 별도 파일인 /etc/ssh/sshd_config.d/99-hardening.conf에서 하세요. 그래야 패키지 업데이트가 작업 내용을 덮어써서 접속이 끊기는 일이 없어요.
비밀번호 대신 키
PasswordAuthentication no
PubkeyAuthentication yes
KbdInteractiveAuthentication no
PermitEmptyPasswords no
적용하기 전에 키가 실제로 작동하는지 확인하세요. 별도 창에서 키로 로그인해 보면 돼요. /hosting/vds/m/<id> 패널의 “Access” 탭에서 추가한 키는 root 사용자에게 적용돼요. 다른 사용자에게 적용하려면 ~/.ssh/authorized_keys에 직접 넣어야 해요.
내 쪽에서 키를 생성하는 방법:
ssh-keygen -t ed25519 -C "work laptop"
ed25519는 RSA보다 짧고 빨라요. 사용하는 도구가 이를 지원하지 않으면 최소 4096비트 길이의 rsa를 사용하세요.
로그인할 수 있는 사용자
PermitRootLogin prohibit-password
AllowUsers artem deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers는 비밀번호를 비활성화한 다음으로 가장 효과적인 규칙이에요. 다른 사람 이름으로 하는 무차별 대입이 즉시 멈춰요. root에 대해서는 비밀번호로 root 로그인 비활성화에서 더 다뤄요.
고정된 위치에서 작업한다면 주소 제한을 걸 수 있어요:
Match Address 203.0.113.5
PermitRootLogin yes
포트 변경
SSH를 22번에서 비표준 포트로 옮겨도 표적형 공격은 막지 못하지만, 로그에 쌓이는 자동 스캐너의 잡음은 거의 사라져요.
Port 2222
단계 순서는 반드시 이렇게 하세요:
ufw allow 2222/tcp
sshd -t
systemctl restart ssh
ssh -p 2222 artem@<address>
ufw delete allow 22/tcp
방화벽 규칙을 재시작보다 먼저 적용하고, 기존 규칙은 새 포트로 로그인에 성공한 뒤에만 제거하세요. 포트도 참고하세요.
적용 및 확인
sshd -t
sshd -T | grep -Ei "passwordauth|permitroot|allowusers|port"
systemctl restart ssh
sshd -t는 문법을 검사하고, sshd -T는 최종적으로 적용된 구성을 보여줘요. 파일에 쓴 내용이 아니라 실제 적용된 구성이요.
설정하는 동안 현재 세션은 열어 두세요. sshd를 재시작해도 세션은 유지되며, 이를 통해 잘못된 수정을 되돌릴 수 있어요. 만약 접속이 끊겼다면 패널의 “Console” 탭은 SSH와 무관하게 작동해요.
흔한 실수
| 실수 | 결과 | 해결 |
|---|---|---|
| 키를 테스트하지 않고 비밀번호를 비활성화 | 네트워크 접속 완전 상실 | 패널 콘솔로 로그인해 설정 복원 |
sshd_config.d의 줄 위에 있는 기본 파일을 수정 | 설정이 적용되지 않음 | sshd -T로 확인 |
| ufw 규칙 없이 포트 변경 | 접속 상실 | 규칙 먼저, 그다음 포트 |
~/.ssh 권한이 700보다 넓음 | 키가 조용히 무시됨 | chmod 700 ~/.ssh, chmod 600 authorized_keys |
자기 이름 없이 AllowUsers 설정 | 스스로 접속 차단 | 패널 콘솔에서 파일 수정 |
sshd_config에서는 매개변수의 첫 번째 항목이 우선하며,sshd_config.d의 파일들은 맨 앞에 포함돼요. 그러니 파일을 읽지 말고sshd -T로 결과를 확인하세요.
fail2ban이 남은 무차별 대입 잡음을 없애 줄 거예요.