Ubuntu 22.04에서 SSH 접속 시 Connection timed out 오류를 해결하는 방법

안녕하세요. VISION IDC 기술팀입니다.

Ubuntu 22.04 서버에 SSH로 접속할 때 Connection timed out 오류가 발생한다면, 일반적으로 SSH 인증 단계에 도달하기 전에 네트워크 경로 또는 TCP 포트 연결이 차단된 상태를 먼저 의심해야 합니다. SSH 서비스 중지, UFW 방화벽 규칙, 잘못된 SSH 포트, 서버 IP 또는 라우팅 문제, 외부 방화벽·보안 정책 등이 대표적인 원인입니다.

이번 문서에서는 서버 콘솔을 사용할 수 있다는 전제에서 네트워크 상태부터 OpenSSH 서비스, 실제 리스닝 포트, UFW 규칙, SSH 설정과 로그를 순서대로 점검하여 Connection timed out 문제를 해결하는 방법을 설명합니다.

적용 환경

  • 운영체제: Ubuntu 22.04 LTS
  • SSH 서버: OpenSSH Server
  • 기본 SSH 포트: TCP 22
  • 예시 서버 IP: 203.0.113.10

Ubuntu 22.04 LTS는 Canonical의 표준 보안 유지보수 대상이며, 표준 지원은 2027년 5월까지 제공됩니다. 운영 서버라면 보안 업데이트를 적용한 상태에서 진단하는 것을 권장합니다.

1. Connection timed out 오류의 의미

ssh [email protected]과 같이 접속했을 때 일정 시간 뒤 Connection timed out이 출력되면, SSH 클라이언트가 지정한 서버와 TCP 연결을 정상적으로 완료하지 못한 경우가 많습니다. OpenSSH의 ConnectTimeout은 대상 호스트가 내려가 있거나 실제로 도달할 수 없는 상황의 연결 시간 제한에 사용됩니다.

오류 우선 확인할 항목
Connection timed out 서버 IP, 라우팅, UFW, 외부 방화벽, NAT/포트포워딩, SSH 포트
Connection refused 대상 서버까지는 도달하지만 해당 포트에 서비스가 리스닝하지 않는지 확인

2. 서버 네트워크 상태 확인

SSH 자체를 점검하기 전에 서버 콘솔에서 네트워크 인터페이스에 올바른 IP 주소가 설정되어 있고 기본 경로가 존재하는지 확인합니다.

ip addr
ip route

외부에서 접속해야 하는 서버라면 실제 할당된 공인 IP 또는 NAT 구성과 SSH 클라이언트에서 입력한 주소가 일치하는지 확인합니다. 기본 경로가 없거나 인터페이스가 DOWN 상태라면 SSH 문제보다 네트워크 설정을 먼저 복구해야 합니다.

외부 통신 자체가 가능한지 확인하려면 서버에서 게이트웨이 또는 인터넷 주소로 통신을 테스트할 수 있습니다. 단, ICMP 응답이 차단된 환경도 있으므로 ping 성공 여부만으로 SSH 포트 상태를 단정하지 마십시오.

3. SSH 서비스 상태 확인

Ubuntu의 OpenSSH 서버 서비스는 일반적으로 ssh.service로 관리됩니다. 먼저 서비스가 실행 중인지 확인합니다.

sudo systemctl status ssh --no-pager

정상적으로 실행 중이라면 상태에 active (running)이 표시됩니다. OpenSSH Server가 설치되어 있지 않다면 다음 명령으로 설치할 수 있습니다.

sudo apt update
sudo apt install -y openssh-server

서비스가 중지되어 있다면 시작하고 부팅 시 자동 시작 상태도 확인합니다.

sudo systemctl enable --now ssh
systemctl is-active ssh
systemctl is-enabled ssh

4. SSH가 실제로 리스닝하는 포트 확인

서비스가 실행 중이어도 예상한 포트에서 리스닝하지 않으면 외부 접속이 되지 않습니다. 기본 SSH 포트인 22번을 사용하는 경우 다음과 같이 확인합니다.

sudo ss -lntp | grep ':22 '

SSH 포트를 변경한 서버라면 설정된 포트 번호로 확인해야 합니다. OpenSSH의 최종 적용 설정은 다음 명령으로 확인할 수 있습니다.

sudo sshd -T | grep -E '^(port|listenaddress)'

기본 설정에서는 SSH가 TCP 22번 포트를 사용하고 로컬의 사용 가능한 주소에서 연결을 기다립니다. ListenAddress를 특정 IP로 제한했다면 해당 IP가 현재 서버에 실제로 존재하는지도 확인해야 합니다.

5. UFW 방화벽에서 SSH 포트 확인

Ubuntu의 기본 방화벽 관리 도구는 UFW입니다. UFW가 활성화되어 있고 SSH 허용 규칙이 없다면 외부 연결이 시간 초과될 수 있습니다.

sudo ufw status verbose

기본 22번 포트를 사용한다면 필요 시 다음과 같이 허용합니다.

sudo ufw allow 22/tcp
sudo ufw status numbered

SSH 포트를 예를 들어 2222번으로 변경했다면 22번이 아니라 실제 포트를 허용해야 합니다.

sudo ufw allow 2222/tcp

6. 외부 방화벽, NAT, 보안 정책 확인

서버 내부에서 SSH 서비스와 UFW 규칙이 모두 정상인데 외부에서만 시간 초과가 발생한다면 서버 바깥의 네트워크 장비 또는 호스팅 환경을 확인해야 합니다.

  • 클라우드 또는 호스팅 방화벽에서 TCP 22번 또는 실제 SSH 포트가 허용되어 있는지 확인
  • NAT 환경이라면 공인 IP의 포트가 올바른 내부 서버 IP와 SSH 포트로 전달되는지 확인
  • 라우터 ACL 또는 IDC 상위 방화벽에서 접속 원본 IP가 차단되어 있지 않은지 확인
  • 서버의 공인 IP가 변경되지 않았는지 확인
  • 특정 접속망에서만 실패한다면 회사·학교·공용 네트워크가 SSH 포트를 차단하는지 다른 네트워크에서도 비교

이 단계의 방화벽은 Ubuntu 내부의 UFW와 별개입니다. UFW에서 허용되어 있어도 상위 방화벽이 패킷을 버리면 Connection timed out이 계속 발생할 수 있습니다.

7. SSH 설정 파일 검사

OpenSSH 서버의 주 설정 파일은 /etc/ssh/sshd_config이며, Ubuntu에서는 /etc/ssh/sshd_config.d/ 아래의 추가 설정 파일도 함께 사용할 수 있습니다. 설정을 변경했다면 먼저 문법 오류를 검사합니다.

sudo sshd -t

문제가 없다면 일반적으로 별도 출력 없이 종료됩니다. 오류가 표시된다면 해당 설정 파일과 줄을 수정한 뒤 다시 검사하십시오.

특히 다음 항목을 확인합니다.

Port 22
#ListenAddress 0.0.0.0
#ListenAddress ::

포트를 변경했다면 클라이언트와 방화벽에도 동일한 포트를 사용해야 합니다. ListenAddress를 특정 주소로 지정한 경우 잘못된 IP가 설정되면 sshd가 원하는 인터페이스에서 연결을 받지 못할 수 있습니다.

설정 문법 검사가 성공한 뒤에만 서비스를 재시작합니다.

sudo systemctl restart ssh
sudo systemctl status ssh --no-pager

8. 클라이언트에서 SSH 포트 연결 테스트

서버 측 확인이 끝났다면 외부 클라이언트에서 TCP 포트가 실제로 열려 있는지 확인합니다. Linux 또는 macOS에서 nc를 사용할 수 있다면 다음과 같이 테스트할 수 있습니다.

nc -vz -w 5 203.0.113.10 22

SSH 자체의 연결 과정을 자세히 확인하려면 verbose 옵션을 사용합니다.

ssh -vvv [email protected]

SSH 포트를 변경했다면 -p 옵션으로 실제 포트를 지정합니다.

ssh -p 2222 -vvv [email protected]

9. SSH 로그 확인

SSH 서비스가 실행되지만 접속에 문제가 있다면 systemd 저널에서 최근 SSH 로그를 확인합니다.

sudo journalctl -u ssh --since today --no-pager

Ubuntu 22.04에서 rsyslog 기반 인증 로그를 사용하는 환경이라면 다음 파일도 확인할 수 있습니다.

sudo tail -n 100 /var/log/auth.log

10. 자주 발생하는 원인과 해결 방법

Ubuntu 22.04 SSH Connection timed out 진단표
증상 확인 방법 해결 방법
SSH 서비스가 중지됨 systemctl status ssh sudo systemctl enable --now ssh로 시작
22번 포트가 리스닝하지 않음 ss -lntp, sshd -T 실제 설정 포트를 확인하고 클라이언트와 방화벽 설정을 일치시킴
UFW에서 SSH 차단 sudo ufw status verbose 현재 SSH 포트를 TCP로 허용
서버 내부는 정상이나 외부에서만 timeout 외부에서 nc 테스트, 서버 로그 유입 여부 확인 호스팅 방화벽, 보안 정책, NAT, 라우터 ACL 확인
SSH 설정 변경 후 접속 불가 sudo sshd -t, sudo sshd -T 설정 오류를 수정하고 콘솔에서 ssh 서비스를 재시작
잘못된 서버 IP로 접속 ip addr와 호스팅 관리 화면 비교 현재 할당된 공인 IP 또는 올바른 NAT 주소로 접속

설정 변경 후 최종 확인

문제를 수정한 뒤 서버 측에서 서비스와 리스닝 상태를 다시 확인합니다.

systemctl is-active ssh
sudo ss -lntp | grep ssh

그 다음 기존 세션을 유지한 상태에서 별도의 터미널이나 PuTTY 창을 열어 새 SSH 접속이 정상적으로 되는지 확인하십시오.

자주 묻는 질문

SSH 서비스는 실행 중인데 왜 Connection timed out이 발생하나요?

sshd가 실행 중이어도 UFW, 상위 방화벽, 잘못된 포트, NAT 또는 라우팅 문제로 패킷이 서버의 SSH 포트까지 도달하지 못하면 시간 초과가 발생할 수 있습니다. ss로 리스닝 상태를 확인한 뒤 외부에서 포트 연결 테스트를 수행하는 것이 좋습니다.

SSH 포트를 변경한 뒤 timeout이 발생하면 무엇을 확인해야 하나요?

sshd -T로 실제 적용된 포트를 확인하고, UFW와 외부 방화벽에서 같은 TCP 포트를 허용했는지 확인하십시오. 클라이언트에서도 ssh -p 포트번호 형식으로 동일한 포트를 지정해야 합니다.

서버의 auth.log에 접속 시도 기록이 전혀 없습니다.

접속 시점에 SSH 로그가 전혀 생성되지 않는다면 패킷이 sshd까지 도달하지 않은 상황을 우선 확인해야 합니다. UFW뿐 아니라 외부 방화벽, NAT, 서버 IP와 네트워크 경로를 점검하십시오.

UFW를 비활성화해서 테스트해도 되나요?

운영 서버에서는 전체 방화벽을 끄기보다 현재 SSH 포트에 필요한 규칙을 명시적으로 허용하고 상태를 확인하는 방법이 안전합니다. 특히 인터넷에 직접 노출된 서버에서 방화벽 전체 비활성화를 장시간 유지하지 마십시오.

관련 VISION IDC 기술자료

공식 참고자료

  • Ubuntu Server DocumentationOpenSSH server: OpenSSH Server 설치와 구성, ssh 서비스 관리 방법 확인. 조회일: 2026-08-13.
  • Ubuntu Server DocumentationFirewall: Ubuntu의 UFW 방화벽 관리 방법 확인. 조회일: 2026-08-13.
  • Ubuntu Manpages 22.04sshd_config(5): PortListenAddress 동작 확인. 조회일: 2026-08-13.
  • Ubuntu Manpages 22.04ssh(1): OpenSSH 클라이언트 옵션과 연결 동작 확인. 조회일: 2026-08-13.
  • CanonicalUbuntu release cycle: Ubuntu 22.04 LTS 지원 기간 확인. 조회일: 2026-08-13.

마무리

Ubuntu 22.04에서 SSH 접속 시 Connection timed out이 발생하면 네트워크 주소와 경로를 확인한 뒤 SSH 서비스, 리스닝 포트, UFW, 외부 방화벽과 NAT를 순서대로 점검하는 것이 좋습니다. 특히 서버의 SSH 로그에 외부 접속 시도가 남지 않는다면 인증 설정보다 패킷이 서버까지 도달하는지를 먼저 확인해야 합니다.

방화벽이나 SSH 설정을 변경한 경우 현재 세션을 종료하기 전에 반드시 별도의 터미널에서 새 접속이 정상적으로 이루어지는지 확인하시기 바랍니다. 오늘 준비한 내용은 여기까지이며, 다음에도 서버 운영에 도움이 되는 기술정보로 인사드리겠습니다.

  • 0 사용자에게 유용한 정보 제공
이 답변이 도움이 되었나요?
« Back