Linux 서버를 운영하다 보면 평소에는 정상적으로 접속되던 SSH가 갑자기 연결되지 않는 상황을 경험할 수 있습니다. 서버는 실행 중인 것처럼 보이지만 SSH 연결이 거부되거나 시간이 초과되는 경우가 있으며, 원인은 네트워크부터 서비스 설정, 방화벽, 인증 문제까지 매우 다양합니다.
이럴 때 무작정 서버를 재부팅하기보다 SSH 서비스와 네트워크 상태를 단계적으로 확인하는 것이 중요합니다. 이번 글에서는 Linux 서버에서 SSH 접속이 되지 않을 때 실무에서 가장 많이 사용하는 점검 방법을 알아보겠습니다.
SSH 접속이 되지 않는 대표적인 원인
다음과 같은 이유로 SSH 접속이 실패할 수 있습니다.
- SSH 서비스 중지
- 포트 변경
- 방화벽 차단
- 네트워크 장애
- IP 변경
- SSH 설정 오류
- 계정 잠금
- 디스크 용량 부족
- SELinux 정책
- Fail2Ban 차단
대부분은 서비스 상태 또는 방화벽 설정을 확인하면 원인을 찾을 수 있습니다.
1. SSH 서비스 상태 확인하기
가장 먼저 SSH 서비스가 실행 중인지 확인합니다.
Ubuntu 계열
systemctl status ssh
CentOS, Rocky Linux, AlmaLinux
systemctl status sshd
서비스가 inactive 또는 failed 상태라면 SSH 접속이 불가능합니다.
2. SSH 서비스 실행하기
서비스가 중지되어 있다면 다시 실행합니다.
systemctl start sshd
자동 시작도 함께 설정합니다.
systemctl enable sshd
3. SSH 설정 파일 확인하기
설정 파일 문법 오류를 확인합니다.
sshd -t
오류가 있다면 파일을 수정한 후 서비스를 다시 시작합니다.
설정 파일 위치는 일반적으로 다음과 같습니다.
/etc/ssh/sshd_config
4. SSH 포트 확인하기
SSH가 기본 포트(22번)가 아닌 다른 포트를 사용할 수도 있습니다.
grep Port /etc/ssh/sshd_config
설정된 포트 번호를 확인합니다.
5. 포트가 열려 있는지 확인하기
SSH 포트가 실제로 열려 있는지 확인합니다.
ss -tlnp | grep ssh
또는
netstat -tlnp | grep ssh
LISTEN 상태가 아니라면 SSH 서비스가 정상적으로 동작하지 않는 것입니다.
6. 방화벽 확인하기
방화벽에서 SSH 포트가 차단되었는지 확인합니다.
Firewalld
firewall-cmd --list-all
UFW
ufw status
SSH 서비스 또는 22번 포트가 허용되어 있어야 합니다.
7. 시스템 로그 확인하기
SSH 관련 로그를 확인합니다.
journalctl -u sshd
또는
journalctl -xe
인증 오류나 서비스 오류를 확인할 수 있습니다.
8. 디스크 용량 확인하기
디스크 공간이 부족하면 로그인 과정에서 문제가 발생할 수 있습니다.
df -h
특히 / 또는 /var 파티션이 가득 찼는지 확인합니다.
9. SELinux 상태 확인하기
SELinux가 SSH 접근을 제한하는 경우도 있습니다.
getenforce
정책 로그도 함께 확인합니다.
ausearch -m avc
10. Fail2Ban 확인하기
로그인 실패가 반복되면 Fail2Ban에 의해 차단될 수 있습니다.
fail2ban-client status sshd
차단된 IP가 있는지 확인합니다.
SSH 문제를 확인하는 순서
실무에서는 다음 순서대로 점검하는 것이 가장 효율적입니다.
- systemctl status sshd
- sshd -t
- ss -tlnp
- 방화벽 확인
- journalctl
- df -h
- SELinux 확인
- Fail2Ban 확인
- 서버 네트워크 확인
- 다른 PC에서 SSH 테스트
자주 묻는 질문
Ping은 되는데 SSH만 안 됩니다.
대부분 SSH 서비스가 중지되었거나 방화벽 또는 포트 설정 문제일 가능성이 높습니다.
SSH 포트를 변경하면 더 안전한가요?
기본 포트(22)를 변경하면 자동화된 무차별 대입 공격을 줄이는 데 도움이 되지만, 인증키 사용과 방화벽 설정을 함께 적용하는 것이 더 중요합니다.
SSH 서비스는 실행 중인데 접속이 되지 않습니다.
포트 변경, 네트워크 ACL, 클라우드 보안 그룹(Security Group), Fail2Ban 차단 등을 함께 확인해야 합니다.
마무리
SSH는 Linux 서버를 원격으로 관리하는 가장 중요한 서비스입니다. 접속이 갑자기 되지 않는다면 서비스 상태, 설정 파일, 포트, 방화벽, 로그를 차례대로 점검하면 대부분의 원인을 빠르게 찾을 수 있습니다. 평소 SSH 키 인증과 로그 모니터링을 함께 운영하면 안정성과 보안성을 모두 높일 수 있습니다.