SSH 연결 거부 오류 해결 | SSH Connection Refused 포트 때문에 답답하셨죠? 이 글에서는 문제의 원인을 명확히 짚어보고, 포트별로 확실하게 해결하는 방법까지 체계적으로 알려드릴게요.
인터넷 정보는 너무 많고, 어디서부터 손대야 할지 막막하셨을 거예요. 잘못된 설정 하나로 소중한 시간을 낭비할 수는 없죠.
복잡한 기술 용어 대신, 누구나 이해하기 쉬운 설명으로 오류를 명쾌하게 해결하고 원활한 SSH 연결을 다시 시작하실 수 있을 거예요.
Contents
SSH 연결 거부 원인 분석
SSH 연결 시 ‘Connection refused’ 오류 메시지를 마주하면 당황스러울 수 있습니다. 마치 문 앞에서 “이용하실 수 없습니다”라는 안내를 받은 것처럼요. 이러한 오류는 여러 가지 원인으로 발생할 수 있으며, 각 원인에 따라 해결 방법도 달라집니다.
가장 흔한 원인은 서버에서 SSH 서비스 자체가 실행되고 있지 않거나, 방화벽 설정으로 인해 접속이 차단되었기 때문입니다. 마치 인기 레스토랑 ‘블루밍’의 경우, 특정 요리(SSH 서비스)가 준비되지 않았거나, 입장(방화벽)이 막힌 상태일 수 있습니다.
SSH는 기본적으로 22번 포트를 사용하는데, 이 포트가 열려 있지 않거나 다른 서비스가 사용 중이라면 연결이 거부될 수 있습니다. 예를 들어, ‘블루밍’ 레스토랑이 22번 창구(포트)를 닫았거나, 다른 가게(서비스)가 그 자리를 차지하고 있을 수 있습니다.
먼저 서버에서 SSH 데몬(sshd)이 정상적으로 동작하는지 확인하는 것이 중요합니다. Ubuntu 시스템에서는 sudo systemctl status ssh 명령어로 상태를 확인할 수 있습니다. 만약 서비스가 중지되어 있다면 sudo systemctl start ssh 명령어로 실행하면 됩니다.
방화벽 설정을 점검하는 것도 필수입니다. AWS EC2 인스턴스의 경우 보안 그룹(Security Group)에서 SSH 접속에 사용되는 22번 포트(TCP)가 허용되어 있는지 확인해야 합니다. 마찬가지로 UFW 같은 방화벽을 사용하는 경우 sudo ufw status로 상태를 확인하고, 필요하다면 sudo ufw allow ssh 또는 sudo ufw allow 22/tcp 명령어로 포트를 열어주어야 합니다.
| 확인 항목 | 확인 방법 | 해결 조치 |
| SSH 서비스 상태 | sudo systemctl status ssh | sudo systemctl start ssh |
| 방화벽 (UFW) | sudo ufw status | sudo ufw allow ssh |
| 방화벽 (AWS 보안 그룹) | AWS 콘솔에서 보안 그룹 설정 확인 | 22번 포트 (TCP) 인바운드 규칙 추가 |
만약 SSH 연결을 특정 IP 주소로만 제한하는 설정(e.g., /etc/ssh/sshd_config의 AllowUsers 또는 AllowGroups 지시어)이 있다면, 해당 IP가 허용 목록에 포함되어 있는지 반드시 확인해야 합니다.
때로는 서버 자체의 네트워크 설정 문제나 잘못된 IP 주소로 접속을 시도하는 경우에도 ‘Connection refused’ 오류가 발생할 수 있습니다. IP 주소가 정확한지, 서버의 네트워크 인터페이스가 올바르게 설정되어 있는지 점검하는 것이 좋습니다.
참고: SSH 포트를 22번이 아닌 다른 포트(e.g., 2222)로 변경하여 사용하는 경우, 클라이언트에서도 해당 변경된 포트로 접속해야 합니다.
포트별 연결 거부 해결 방법
SSH 연결 거부 오류는 종종 특정 포트에서의 통신 문제를 야기하며, 이를 해결하기 위한 심화 과정은 더욱 구체적인 접근을 요구합니다. 각 포트별로 발생 가능한 원인과 이를 해결하기 위한 실제적인 절차를 상세히 안내합니다.
가장 흔하게 사용되는 SSH 기본 포트 22번에서의 연결 거부는 방화벽 설정 오류, SSH 데몬 비활성화, 혹은 잘못된 IP 주소 설정 등 복합적인 원인으로 발생합니다. 서버 측의 sshd_config 파일을 확인하여 Port 22 설정이 올바른지, 그리고 ListenAddress가 0.0.0.0 또는 특정 IP로 올바르게 설정되었는지 점검하는 것이 중요합니다.
또한, ufw나 firewalld와 같은 방화벽 설정에서 SSH 포트(기본 22번)가 허용되어 있는지 확인하고, 필요한 경우 sudo ufw allow ssh 또는 sudo firewall-cmd –zone=public –add-service=ssh –permanent && sudo firewall-cmd –reload 명령어를 사용하여 포트를 개방해야 합니다. 이 과정은 약 5-15분 내외로 소요될 수 있습니다.
보안 강화를 위해 비표준 포트를 사용하는 경우, 클라이언트에서 SSH 접속 시 -p 옵션을 사용하여 해당 포트 번호를 명확히 지정해야 합니다. 예를 들어, SSH 서버가 2222번 포트를 사용한다면, 접속 명령어는 ssh -p 2222 user@hostname과 같이 됩니다.
만약 비표준 포트에서도 연결 거부 오류가 지속된다면, 서버의 sshd_config 파일에서 Port 지시자가 실제로 변경되었는지 재확인하고, SSH 데몬을 재시작(sudo systemctl restart sshd 또는 sudo service ssh restart)하는 것이 필수적입니다. 이 단계는 종종 놓치기 쉬운 부분으로, 정확한 설정값 입력이 중요합니다.
핵심 팁: 비표준 포트를 사용할 때는 관련 정보를 기록하고 관리하는 것이 중요하며, 포트 충돌 여부를 사전에 확인하는 것이 문제를 예방하는 최선의 방법입니다.
- 최우선 점검 사항: 서버의 SSH 데몬(sshd)이 실행 중인지 ps aux | grep sshd 명령어로 확인합니다.
- 네트워크 설정 확인: iptables -L 또는 nft list ruleset 명령어로 포트 관련 방화벽 규칙을 상세히 분석합니다.
- 로그 파일 분석: /var/log/auth.log 또는 /var/log/secure 파일을 통해 SSH 연결 시도 및 거부 관련 상세 오류 메시지를 확인하여 원인을 파악합니다.
SSH 접속 문제 해결 단계
SSH 연결 거부 오류 발생 시, 다음과 같은 단계별 해결 방법을 따르세요. 각 단계별로 정확한 확인과 조치가 중요합니다.
SSH 접속 전에 서버와 클라이언트 양쪽의 기본 설정을 점검하는 것이 중요합니다. 특히 방화벽 설정은 가장 흔한 원인 중 하나입니다.
서버 측 SSH 데몬(sshd)이 정상적으로 실행 중인지, 그리고 클라이언트에서 올바른 포트 번호를 사용하고 있는지 확인해야 합니다. 기본 SSH 포트는 22번이지만, 변경되었을 가능성도 있습니다.
| 단계 | 실행 방법 | 소요시간 | 주의사항 |
| 1단계 | 서버 SSH 데몬 확인 | 5-10분 | systemctl status sshd 명령으로 상태 점검 |
| 2단계 | 방화벽 설정 확인 | 10-15분 | SSH 포트(기본 22번)가 열려 있는지 확인 |
| 3단계 | 클라이언트 접속 정보 확인 | 5분 | IP 주소, 사용자 이름, 포트 번호 정확히 입력 |
SSH 연결 거부 오류는 대부분 네트워크 또는 서비스 설정 문제입니다. 오류 메시지를 면밀히 분석하여 원인을 좁혀나가는 것이 중요합니다.
클라이언트에서 telnet <서버 IP>
체크포인트: 서버의 /etc/ssh/sshd_config 파일에서 Port 설정을 확인하고, 클라이언트에서 동일한 포트 번호를 사용해야 합니다.
- ✓ 서버 재시작: sshd_config 파일 수정 후에는 SSH 서비스 재시작 (systemctl restart sshd)
- ✓ SELinux/AppArmor: 보안 정책으로 인해 SSH 접속이 차단될 수 있으므로 관련 설정 확인
- ✓ 방화벽 규칙: iptables 또는 firewalld 등 방화벽에서 SSH 포트 허용 여부 최종 확인
방화벽 및 설정 오류 점검
SSH 연결 거부 오류는 방화벽 설정이나 SSH 서비스 자체의 문제일 가능성이 높습니다. 가장 흔하게 발생하는 원인들을 구체적인 상황과 함께 알려드릴게요.
서버의 방화벽이 SSH 기본 포트인 22번을 차단하고 있는 경우가 가장 많습니다. 클라우드 환경에서는 보안 정책상 특정 포트만 허용하는 경우가 빈번하죠. AWS의 보안 그룹이나 Azure의 네트워크 보안 그룹 설정을 확인해야 합니다.
예를 들어, AWS EC2 인스턴스에 접속하려는데 SSH 연결 거부 오류가 발생한다면, 해당 인스턴스의 보안 그룹에서 인바운드 규칙에 SSH(TCP 22번 포트)가 허용되어 있는지 반드시 점검해야 합니다. 특정 IP 대역만 허용했다면, 본인의 현재 IP가 포함되는지 확인해야 합니다.
방화벽 문제가 아니라면, 서버 자체에서 SSH 데몬(sshd)이 실행되지 않거나 설정 파일에 오류가 있을 수 있습니다. 리눅스 서버라면 systemctl status sshd 명령어로 서비스 상태를 확인하는 것이 첫걸음입니다.
SSH 설정 파일인 /etc/ssh/sshd_config 파일에서 Port 지시어가 올바르게 설정되었는지, PermitRootLogin이나 AllowUsers 같은 옵션이 접속을 막고 있지는 않은지 꼼꼼히 확인해야 합니다. 설정을 변경했다면 반드시 SSH 서비스를 재시작해야 적용됩니다. 잘못된 설정은 SSH 연결 거부 오류를 유발할 수 있습니다.
- 비표준 포트 사용 시: SSH 포트를 22번이 아닌 다른 포트(예: 2222)로 변경한 경우, 연결 시 반드시 -p 2222 옵션을 함께 사용해야 합니다.
- SELinux 설정: SELinux가 활성화된 환경에서는 SSH 포트 변경 시 SELinux 정책 설정이 필요할 수 있습니다.
- 네트워크 환경: 개인 공유기나 회사 방화벽에서 SSH 포트를 차단하는 경우도 드물게 있습니다.
안전한 SSH 연결을 위한 팁
SSH 연결 거부 오류는 다양한 원인으로 발생할 수 있으며, 특히 포트 관련 문제는 자주 발생합니다. 방화벽 설정 오류, SSH 데몬 비활성화, 잘못된 포트 번호 지정 등이 대표적인 원인입니다. 이러한 문제들은 보안 강화 및 네트워크 환경 변화에 따라 더욱 복잡해질 수 있습니다.
포트 22는 SSH 기본 포트이지만, 보안상의 이유로 변경하는 경우가 많습니다. 변경된 포트 번호를 정확히 확인하고 접속을 시도하는 것이 중요합니다. 클라이언트 측에서는 방화벽에서 해당 포트로의 아웃바운드 연결을 허용하는지, 서버 측에서는 SSH 데몬이 올바르게 설정되고 실행 중인지 점검해야 합니다.
또한, SELinux나 AppArmor와 같은 보안 강화 모듈이 SSH 서비스의 정상적인 작동을 차단할 수도 있습니다. 이 경우 해당 모듈의 정책을 조정하거나 일시적으로 비활성화하여 문제를 진단해 볼 수 있습니다. /etc/ssh/sshd_config 파일에서 Port 설정을 확인하고, systemctl restart sshd 명령으로 SSH 서비스를 재시작하는 것이 일반적인 해결 절차입니다.
SSH Connection Refused 오류를 해결하기 위한 마지막 점검으로, 서버의 시스템 로그 /var/log/auth.log 또는 journalctl -u sshd 를 통해 구체적인 에러 메시지를 확인하는 것이 심층적인 원인 파악에 큰 도움이 됩니다. 간혹 네트워크 장비의 ACL 설정이나 ISP 단에서의 차단 문제일 수도 있으므로, 가능한 모든 경로를 점검하는 것이 완벽한 해결의 지름길입니다.
자주 묻는 질문
✅ SSH 연결 시 ‘Connection refused’ 오류가 발생하는 가장 흔한 원인은 무엇인가요?
→ 가장 흔한 원인은 서버에서 SSH 서비스(sshd) 자체가 실행되고 있지 않거나, 방화벽 설정으로 인해 SSH 접속이 차단되었기 때문입니다.
✅ Ubuntu 시스템에서 SSH 서비스가 실행 중인지 확인하고, 중지되어 있다면 어떻게 다시 시작할 수 있나요?
→ Ubuntu에서는 sudo systemctl status ssh 명령어로 SSH 서비스 상태를 확인할 수 있습니다. 만약 서비스가 중지되어 있다면 sudo systemctl start ssh 명령어를 사용하여 실행할 수 있습니다.
✅ AWS EC2 인스턴스에서 SSH 연결 거부 오류가 발생할 때, 어떤 방화벽 설정을 확인해야 하나요?
→ AWS EC2 인스턴스의 경우, 보안 그룹(Security Group) 설정에서 SSH 접속에 사용되는 22번 포트(TCP)가 인바운드 규칙으로 허용되어 있는지 확인해야 합니다.




