Question
인스턴스에 SSH 접속이 되지 않아요.
Answer
SSH 접속 에러시 확인해봐야할 몇가지 요소를 안내드리겠습니다.
1. 인스턴스 상태 확인
SSH 접속 불가 문제를 해결하는 첫 번째 단계는 인스턴스의 상태를 확인하는 것입니다. 다음 사항들을 점검해 보세요:
- 인스턴스 상태 확인: AWS Management Console에서 해당 인스턴스의 상태가 "running"인지 확인합니다. 만약 "stopped" 또는 "terminated" 상태라면, SSH 접속은 불가능합니다.
- 상태 검사 (Status Checks): AWS 콘솔의 'Status Checks' 섹션에서 두 가지 상태 검사 항목이 모두 통과되었는지 확인합니다. 둘 중 하나라도 실패할 경우, 해당 인스턴스에 심각한 문제가 발생했을 가능성이 있습니다.
조치: 상태 체크가 실패한 경우, 시스템 로그를 확인하거나 지원팀에 문의하여 문제를 진단하고 해결합니다.
일반적으로는 stop / start로 해결이 가능 합니다.
인스턴스 상태 실패의 경우는, OS 레벨의 상태를 확인 해야 합니다.
2. SSH 접속 시 인스턴스 사용자 이름 확인
SSH 접속 시 사용하는 사용자 이름이 인스턴스의 OS에 적합한지 확인해야 합니다. OS별로 기본 사용자 이름이 다르기 때문에, 잘못된 사용자 이름으로 접속을 시도하면 인증에 실패하게 됩니다.
인스턴스 OS 확인 방법 (인스턴스 선택 - 하단 세부정보 탭 - 인스턴스 세부정보)
해당 인스턴스에 적합한 사용자 이름으로 접속 시도하였는지 확인합니다.
- Amazon Linux 2/AMI:
ec2-user
- CentOS AMI:
centos
또는ec2-user
- Debian AMI:
admin
- Fedora AMI:
fedora
또는ec2-user
- RHEL AMI:
ec2-user
또는root
- SUSE AMI:
ec2-user
또는root
- Ubuntu AMI:
ubuntu
- Oracle AMI:
ec2-user
- Bitnami AMI:
bitnami
- Amazon Linux 2/AMI:
3. 보안 그룹 규칙이 SSH 트래픽을 허용하는지 확인
보안 그룹은 인스턴스에 대한 네트워크 트래픽을 제어하는 중요한 구성 요소입니다. 보안 그룹 설정이 올바르지 않으면 SSH 접속이 차단될 수 있습니다.
- 인바운드 규칙 확인: 인스턴스에 연결된 보안 그룹에서 포트 22(SSH)에 대한 인바운드 규칙이 올바르게 설정되어 있는지 확인합니다. 특히, 소스 IP가 허용된 범위 내에 있는지 확인이 필요합니다.
- IP 주소 확인: 현재 사용 중인 IP 주소가 보안 그룹에서 SSH 접속을 허용한 소스 IP 범위와 일치하는지 확인합니다. 만약 IP 주소가 변경된 경우, 보안 그룹 규칙을 업데이트해야 합니다.
조치: 보안 그룹의 인바운드 규칙을 검토하여 포트 22가 열려 있고, 적절한 IP 주소가 허용된 상태인지 확인합니다.
4. 키페어 확인
SSH 접속 에러 화면 (잘못된 프라이빗키를 적용한 경우)
SSH 접속 시 사용하는 프라이빗 키가 올바른지 확인하는 것은 매우 중요합니다. 잘못된 키를 사용할 경우, 인증에 실패하게 됩니다.
- 프라이빗 키 일치 여부: 인스턴스 생성 시 지정한 키페어와 현재 사용하는 프라이빗 키가 일치하는지 확인합니다.
- 프라이빗 키 파일 권한 설정: 프라이빗 키 파일의 권한이 적절히 설정되어 있는지 확인합니다. 예를 들어, UNIX/Linux 시스템에서는
chmod 400 your-key.pem
명령어를 사용하여 권한을 설정할 수 있습니다.
조치: 올바른 프라이빗 키를 사용하여 접속을 시도하거나, 필요시 새로운 키페어를 생성하여 인스턴스에 적용합니다.
5. 네트워크 ACL 및 라우팅 테이블 확인
네트워크 ACL 또는 라우팅 테이블 설정이 SSH 접속에 영향을 미칠 수 있습니다. 이 설정들은 서브넷 수준에서 트래픽을 제어합니다.
- 네트워크 ACL 확인: 네트워크 ACL에서 인바운드와 아웃바운드 규칙이 SSH 트래픽을 허용하는지 확인합니다. 네트워크 ACL은 보안 그룹과는 별도로 작동하며, 보다 세밀한 트래픽 제어를 제공합니다.
- 라우팅 테이블 확인: 인스턴스가 속한 서브넷의 라우팅 테이블이 올바르게 설정되어 있는지 확인합니다. 특히, 인터넷 게이트웨이 또는 NAT 게이트웨이를 통해 외부와의 통신이 가능해야 합니다.
조치: 네트워크 ACL 및 라우팅 테이블 설정이 올바른지 확인하고, 필요시 설정을 수정하여 SSH 접속을 허용합니다.
6. 인스턴스 내부 방화벽 설정 확인
인스턴스 내부의 방화벽 설정이 SSH 트래픽을 차단할 수 있습니다. 특히 iptables
와 같은 방화벽 서비스를 사용하는 경우, 설정을 점검해야 합니다.
- iptables 설정 확인: 인스턴스에서
iptables
또는 다른 방화벽 서비스가 포트 22(SSH)를 허용하도록 설정되어 있는지 확인합니다.
조치: 방화벽 설정이 SSH 접속을 허용하도록 수정하고, 필요한 경우 방화벽을 재시작하여 설정을 적용합니다.
7. 기타 고려 사항
- DNS 문제: 도메인을 통해 SSH 접속을 시도하는 경우, DNS 문제로 인해 접속이 불가능할 수 있습니다. IP 주소를 직접 사용하여 접속을 시도해 보세요.
- 네트워크 연결 상태: 사용자의 네트워크 연결 상태가 불안정한 경우에도 SSH 접속에 문제가 발생할 수 있습니다. 가능하다면 다른 네트워크 환경에서 접속을 시도해 보세요.
결론
SSH 접속 문제는 다양한 원인으로 발생할 수 있으며, 문제를 해결하기 위해서는 체계적인 접근이 필요합니다. 본 가이드에서 제공한 단계별 해결책을 따르시면 대부분의 SSH 접속 문제를 해결할 수 있을 것입니다. 만약 위의 방법으로도 문제가 해결되지 않는다면, AWS 지원팀에 문의하여 추가적인 도움을 받으시기 바랍니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.