SSH 문제 해결을 표 하나로
거의 모든 SSH 실패는 세 가지 범주 중 하나에 속합니다 — 연결이 맺어지지 않음, 인증이 거부됨, 세션이 끊김. 가장 빠른 해결법은 정확한 오류를 읽고 그 원인으로 바로 가는 것입니다. 이 페이지는 흔한 모든 SSH 오류, 그 의미, 그리고 그것을 고치는 집중 가이드의 지도입니다.
증상으로 진단하기
| 보이는 오류 | 보통의 의미 | 해결법 |
|---|---|---|
Connection refused | 머신에는 도달하지만 그 포트에서 아무것도 수신 대기하지 않음 | Connection refused → |
Connection timed out | 응답이 전혀 없음 — IP가 틀림, 호스트 다운, 또는 외부에서 사설 주소로 | Timed out → |
Connection closed by remote host | 서버가 받아들인 뒤 끊음 — 흔히 fail2ban 차단 | Closed by remote → |
Permission denied (publickey) | 서버가 인증을 거부 — 키/사용자 이름/권한 | Permission denied → |
Too many authentication failures | 클라이언트가 키를 너무 많이 제시해, 올바른 키가 시도되기 전에 한도 도달 | Too many auth → |
UNPROTECTED PRIVATE KEY FILE | 키 파일을 남이 읽을 수 있음 — SSH가 무시함 | Unprotected key → |
Host key verification failed | 서버의 신원 키가 지난번과 달라짐 | Host key changed → |
no matching host key type found | 최신 클라이언트 vs 구형 서버 — 알고리즘 불일치 | No matching host key → |
Broken pipe / client_loop | 유휴 연결이 끊김, 또는 네트워크가 바뀜 | Broken pipe → |
연결 수준 오류(연결이 안 됨)
이것들은 인증 전에 발생합니다 — 문제는 자격 증명이 아니라 네트워크 경로입니다. 셋은 구별하기 쉽습니다:
- Connection refused — 머신이 "여기엔 수신 대기 중인 것이 없다"고 답함. sshd가 꺼졌거나, 포트가 틀렸거나, 방화벽이 거부.
- Connection timed out — 응답이 전혀 없음. IP가 틀렸거나/바뀌었거나, 호스트가 잠들었거나, 외부에서 사설 LAN 주소로 연결을 시도(모바일에서 가장 흔한 원인).
- Connection closed by remote host — 받아들인 뒤 끊었음. 보통 로그인 실패 후 fail2ban 차단, 또는 과부하된 sshd.
인증 오류(연결은 되지만 거부됨)
연결은 작동합니다. 서버가 당신의 자격 증명을 받아들이지 않습니다.
- Permission denied (publickey) — 만능 오류:사용자 이름이 틀림, 키가 제시되지 않음, 키가
authorized_keys에 없음, 또는 권한이 잘못됨. - Too many authentication failures — 클라이언트에 키가 많아 올바른 키 전에 서버 한도를 소진.
IdentitiesOnly로 해결. - UNPROTECTED PRIVATE KEY FILE — 개인 키를 누구나 읽을 수 있어 SSH가 무시함.
chmod 600한 번.
호스트 키 및 알고리즘 오류
- Host key verification failed — 서버의 신원 키가 당신이 고정한 것과 다름. 보통 재설치 또는 IP 재사용. 받아들이기 전에 확인하세요.
- no matching host key type found — 최신 클라이언트가 구형 서버의 오래된 알고리즘(
ssh-rsa)을 거부. 호스트별로 호환 옵션을 한정해 지정.
세션 및 기타 오류
- Broken pipe / client_loop: send disconnect — 연결이 죽음. 보통 NAT의 유휴 끊김 또는 네트워크 변화. 킵얼라이브로 해결.
- Docker 컨테이너에 "SSH"할 수 없나요? — 그렇게 하지 않습니다. 호스트에 SSH한 뒤
docker exec.
휴대폰에서 문제 해결하기
모바일에서 SSH 오류의 어려운 점은 장황한 출력을 읽고 진단 명령을 기억하는 것입니다. 사용 가능한 세션이 하나라도 있으면, 오류를 선택해 어시스턴트에게 물어보세요 — TermAI의 AI가 실제 메시지와 당신의 서버 컨텍스트를 읽고, 어떤 원인인지 확인하고 고칠 정확한 명령과 함께 알려줍니다.
자주 묻는 질문
SSH 연결을 어떻게 문제 해결하나요?
정확한 오류를 읽고 분류하세요:연결 수준(refused/timed-out/closed)은 네트워크나 서버 문제, 인증 수준(permission denied/too many auth)은 자격 증명, 호스트 키 오류는 신원 또는 알고리즘 불일치입니다. 그런 다음 그 오류에 집중한 해결법을 따르세요.
refused, timed out, closed의 차이는?
Refused = 수신 대기 중인 것이 없음. Timed out = 응답이 전혀 없음. Closed by remote host = 응답한 뒤 당신을 끊음(흔히 차단).
왜 SSH가 집에서는 되고 모바일 데이터에서는 안 되나요?
홈 네트워크 밖에는 존재하지 않는 사설 LAN 주소에 연결하고 있을 가능성이 높습니다 — 안정적인 주소를 위해 Tailscale을 사용하세요. timed out 참조.
SSH 오류는 서버 어디에 기록되나요?/var/log/auth.log(Debian/Ubuntu) 또는 journalctl -u ssh — 대부분의 인증 및 연결 거부의 진짜 이유가 적혀 있습니다.
핵심 요약
- 세 가지 범주:연결 수준(refused/timed-out/closed), 인증 수준(permission denied/too many auth/unprotected key), 호스트 키/알고리즘
- 연결 오류 구별:refused = 수신 대기 없음 · timed out = 응답 없음 · closed = 응답 후 끊김
- 서버 측 진실:
/var/log/auth.log또는journalctl -u ssh - 모바일:오류를 선택하고 AI에게 분류와 수정을 맡기기
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.