SSH 접속
SSH 접속이 안 될 때 체크리스트
아래 항목을 순서대로 확인하세요.
1. 공인 IP가 가상머신에 연결되어 있는지 확인
ECI 포털 컴퓨트 > 가상머신 상세 페이지에서 공인 IP가 표시되는지 확인합니다.
2. 가상 네트워크 방화벽에서 포트 22가 허용되어 있는지 확인
방화벽 규칙은 가상 네트워크 단위로 설정됩니다. 가상머신이 속한 가상 네트워크의 상세 페이지의 방화벽 규칙 섹션에서 인바운드 TCP 22 규칙이 있는지 확인합니다 (소스 IP를 본인 IP로 좁히는 것이 안전).
없다면 추가합니다. 변경 사항은 최대 1분 이내에 적용됩니다. 방화벽 설정 가이드
3. 가상머신 내부 방화벽(UFW) 확인
웹 콘솔로 가상머신에 접속한 후:
sudo ufw status
22번 포트가 허용되어 있지 않으면:
sudo ufw allow 22/tcp
sudo ufw reload
4. sshd 서비스 확인
sudo systemctl status sshd
sudo ss -tnlp | grep :22
sshd가 실행 중이지 않으면:
sudo systemctl restart sshd
5. 비밀번호 인증이 비활성화되어 있는지 확인 (Ubuntu 기본)
Ubuntu cloud-init은 비밀번호 SSH를 기본 비활성화합니다 (/etc/ssh/sshd_config.d/60-cloudimg-settings.conf 또는 유사 파일에 PasswordAuthentication no). 웹 콘솔로 접속한 뒤 활성화합니다.
# cloud-init이 추가한 비번 인증 비활성 설정 확인
sudo grep -r "PasswordAuthentication" /etc/ssh/
# 활성화 (전역 sshd_config 또는 drop-in 파일)
sudo sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config.d/*.conf 2>/dev/null || true
sudo systemctl restart sshd
가상머신 생성 시 초기 스크립트에 위 명령을 포함하면 매번 수동 설정 없이 비번 인증을 켤 수 있습니다.
6. 키 파일 권한 확인 (클라이언트 측)
chmod 600 ~/.ssh/your-key.pem
7. 상세 로그로 접속 시도
ssh -vvv -i your-key.pem <사용자명>@<PUBLIC_IP>
-vvv 플래그로 어느 단계에서 실패하는지 확인합니다 (Permission denied (password,publickey) → 5번 항목, Connection timed out → 1·2번 항목 점검).
해결이 안 된다면
ssh -vvv 출력 결과와 함께 지원 채널로 문의하세요.
Connection closed by ... port ... 오류
가상머신을 만든 직후 SSH로 접속하면 다음과 같이 즉시 연결이 끊어지는 경우가 있습니다.
Connection closed by xxx.xx.xx.x port xxxx
다음 중 하나가 원인입니다.
- 자원 할당이 아직 끝나지 않음
- OS 부팅이 완전히 끝나지 않음
- SSH 키 파일 권한 문제로 sshd가 거부
가상머신 상세 페이지의 웹 콘솔 탭으로 접속해 부팅 로그를 확인하고, 1~2분 기다린 뒤 다시 시도하세요. 그래도 계속되면 위의 6단계 체크리스트를 따라 점검합니다.
특정 IP에서만 SSH 접속을 허용하고 싶어요
가상 네트워크 방화벽은 위에서 아래로 평가하며 처음 매칭된 규칙만 적용됩니다. 따라서 허용 규칙을 위에, 차단 규칙을 맨 마지막에 배치해야 합니다.
예: 165.123.45.67 한 IP에서만 SSH(22) 허용
| 순서 | 프로토콜 | 소스 | 대상 | 포트 | 액션 |
|---|---|---|---|---|---|
| 1 | TCP | 165.123.45.67/32 | 가상 네트워크 CIDR | 22 | ACCEPT |
| 2 | ALL | 0.0.0.0/0 | 가상 네트워크 CIDR | - | DROP |
여러 IP에서 접속해야 하면 ACCEPT 규칙을 추가로 쌓은 뒤 마지막에 한 줄 DROP을 둡니다.
ACCEPT 1.2.3.4/32 → SSH
ACCEPT 5.6.7.8/32 → SSH
ACCEPT 9.10.11.12/32 → SSH
DROP 0.0.0.0/0 → ALL
순서가 거꾸로 들어가면 ACCEPT 규칙이 평가되기 전에 DROP에서 매칭되어 SSH가 막힙니다. 규칙 변경 후 적용까지 최대 1분 정도 걸릴 수 있습니다.
자세한 설정 방법은 방화벽 가이드를 참고하세요.