우분투 실전 명령어 | SSH 키 로그인 전환과 보안 설정
언제 쓰는가
비밀번호 로그인만 열어둔 서버는 무차별 대입 공격에 계속 노출됩니다. 운영 서버를 붙잡고 관리해야 할 때는 SSH 키 로그인으로 바꾸고, 루트 직접 접속까지 막아두는 게 기본입니다. 이 글은 “접속은 더 안전하게, 운영은 불편하지 않게” 설정하는 최소 명령만 정리했습니다.
바로 쓰는 명령어
# 1) 로컬(내 PC)에서 키 생성
ssh-keygen -t ed25519 -C "devlab-admin" -f ~/.ssh/devlab_ed25519
# 2) 서버에 공개키 등록
ssh-copy-id -i ~/.ssh/devlab_ed25519.pub ubuntu@SERVER_IP
# 3) 서버 SSH 설정 백업 후 편집
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F-%H%M)
sudo nano /etc/ssh/sshd_config
# 4) 아래 항목 확인/수정
# PubkeyAuthentication yes
# PasswordAuthentication no
# PermitRootLogin no
# (선택) AllowUsers ubuntu deploy
# 5) 설정 문법 검사 + 재시작
sudo sshd -t
sudo systemctl restart ssh
# 새 터미널에서 키 로그인 검증
ssh -i ~/.ssh/devlab_ed25519 ubuntu@SERVER_IP
# 서버에서 접속 로그 확인
sudo journalctl -u ssh --since "10 min ago" --no-pager
핵심 옵션/패턴
ed25519: 키 길이/성능 균형이 좋아서 기본 선택으로 무난합니다.PasswordAuthentication no: 비밀번호 인증 자체를 막아 공격면을 줄입니다.PermitRootLogin no: 루트 계정 직접 로그인 차단. 운영은 일반 계정 +sudo로 처리합니다.sshd -t: 재시작 전에 설정 문법 오류를 먼저 잡아 장애를 예방합니다.
자주 하는 실수
- 기존 SSH 세션을 끊고 바로
PasswordAuthentication no를 적용하는 실수- 해결: 반드시 새 터미널로 키 로그인 성공 확인 후 기존 세션을 닫으세요.
- 공개키를 잘못된 계정 홈에 넣는 실수
- 해결: 대상 계정의
~/.ssh/authorized_keys위치와 권한을 확인하세요.
- 해결: 대상 계정의
sshd -t검사 없이 재시작하는 실수- 해결: 문법 오류가 있으면 즉시 접속 불가가 될 수 있으니 검사 후 재시작하세요.
검증 방법
# 클라이언트: 비밀번호 인증이 비활성인지 확인
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ubuntu@SERVER_IP
# 서버: ssh 서비스 상태 확인
systemctl status ssh --no-pager
# 서버: 최근 실패/성공 로그 확인
sudo journalctl -u ssh -n 50 --no-pager
비밀번호 인증이 꺼졌다면 첫 번째 명령은 Permission denied로 끝나는 게 정상입니다.
실행 결과 예시
$ ssh -i ~/.ssh/devlab_ed25519 [email protected]
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
[email protected]: Permission denied (publickey).
$ sudo sshd -t
#
$ systemctl status ssh --no-pager
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-02-18 21:34:12 KST
출처
- OpenSSH Manual
- Ubuntu Server Guide
- Ubuntu manpages