우분투 SSH 보안 기본 설정과 접속 문제 진단 요령

SSH 보안 기본 설정과 접속 문제 진단의 필요성

우분투(Ubuntu) 리눅스 서버를 구축한 뒤 가장 먼저 마주하는 작업 중 하나는 원격 관리를 위한 SSH 접속 환경 조성입니다. 하지만 기본 설정 상태 그대로 운영하는 서버는 무작위 대입 공격이나 스캐닝 봇의 표적이 되기 쉽습니다. 이번 글에서는 초보 서버 관리자도 실수 없이 적용할 수 있는 SSH 보안 기본 설정 방법과, 접속 장애 발생 시 원인을 침착하게 진단하는 절차를 배웁니다.

사전 준비 사항

안전한 설정을 위해 아래 항목을 먼저 확인해야 합니다.

  • 우분투 서버에 직접 접근할 수 있는 권한(sudo 권한이 있는 일반 사용자 또는 루트 계정)
  • 설정 파일 수정 전 기존 파일을 백업할 수 있는 터미널 환경
  • 원격 접속이 끊겼을 때를 대비한 클라우드 제공업체의 콘솔(VNC) 접근 수단

안전한 SSH 설정 변경 절차

SSH 서비스의 설정 파일은 /etc/ssh/sshd_config 경로에 위치합니다. 설정을 변경하기 전, 반드시 원본 파일을 백업해 두어야 실수로 인한 접속 차단 상황을 예방할 수 있습니다.

1. 설정 파일 백업하기

터미널에서 아래 명령어를 입력하여 원본 설정 파일을 백업합니다.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

2. 주요 보안 설정 항목 수정하기

텍스트 편집기를 사용하여 /etc/ssh/sshd_config 파일을 엽니다.

sudo nano /etc/ssh/sshd_config

설정 파일 내에서 다음 항목들을 찾아 주석(#)을 해제하거나 값을 변경합니다.

  • Port: 기본 포트(22) 대신 임의의 포트 번호(예: 2222)로 변경하여 무작위 공격을 줄입니다.
  • PermitRootLogin: 루트(root) 계정의 직접 원격 로그인을 차단(no 또는 prohibit-password)합니다.
  • PasswordAuthentication: 비밀번호 인증 대신 SSH 키 기반 인증을 사용하는 경우 no로 설정할 수 있습니다. 단, 키 쌍 등록이 완료되었는지 반드시 확인해야 합니다.

3. 문법 검증 및 서비스 재시작

설정을 저장한 후에는 문법에 오류가 없는지 먼저 검사해야 합니다.

sudo sshd -t

출력 결과가 없다면 문법에 이상이 없는 것입니다. 그 후 시스템 서비스를 재시작하여 변경 사항을 적용합니다.

sudo systemctl restart ssh 또는 sudo systemctl restart sshd

SSH 접속 문제 진단 순서

설정 변경 후 원격 접속이 되지 않는다면 당황하지 말고 아래 순서대로 원인을 진단합니다.

  • 클라우드 방화벽 및 UFW 확인: 포트를 변경했다면 클라우드 보안 그룹(AWS 인바운드 규칙 등)과 우분투 내부 방화벽(UFW)에 새 포트가 열려 있는지 확인합니다.
  • 로그 확인: 인증 실패나 서비스 오류는 시스템 로그에 기록됩니다. sudo journalctl -u ssh 명령어로 최근 로그를 점검합니다.
  • 콘솔 접근을 통한 복구: 접속이 완전히 차단된 경우 클라우드 제공업체의 웹 콘솔 기능을 이용해 서버에 접속한 뒤, 백업해 둔 설정 파일(/etc/ssh/sshd_config.bak)을 원복합니다.

자주 하는 실수와 주의 사항

  • 기존 세션을 종료하기 전 테스트하지 않는 실수: 설정을 변경하고 서비스를 재시작한 뒤에는, 현재 창을 닫지 말고 새 터미널 창을 열어 접속이 정상적으로 이루어지는지 먼저 확인해야 합니다.
  • 방화벽 반영 누락: 포트 번호를 변경했음에도 서버 방화벽이나 외부 네트워크 보안 그룹에 이를 반영하지 않아 접속이 거부되는 사례가 빈번합니다.
  • 공개키 권한 설정 오류: SSH 키 기반 인증을 설정할 때 ~/.ssh 디렉토리와 authorized_keys 파일의 권한이 너무 개방되어 있으면 인증이 실패합니다.

실무 SSH 보안 점검 체크리스트

  • [ ] SSH 설정 변경 전 /etc/ssh/sshd_config.bak 백업을 완료했는가?
  • [ ] 루트 계정의 원격 직접 로그인이 차단되어 있는가?
  • [ ] 방화벽(UFW 및 외부 보안 그룹)에 변경된 포트가 허용되어 있는가?
  • [ ] 설정 변경 직후 기존 세션을 유지한 채 새 창에서 접속 테스트를 마쳤는가?
  • [ ] 시스템 로그에 SSH 관련 에러 메시지가 없는지 확인했는가?

이번 글에서는 우분투 리눅스 환경에서 SSH 보안을 강화하는 기본 설정 방법과 접속 장애 시 대처 요령을 다뤘습니다. 안전한 서버 운영의 첫걸음은 사소한 설정 변경에서도 백업과 사전 테스트를 습관화하는 것입니다.

관련 글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다