"no matching host key type found"의 의미
SSH 클라이언트와 서버가 암호화 알고리즘에 합의하지 못해 연결이 시작되지 않습니다. 2026년에 흔한 이유는 이렇습니다: 최신 클라이언트가, 오래된 서버가 여전히 의존하는 낡고 취약한 알고리즘을 비활성화했기 때문입니다. OpenSSH 8.8 이상은 ssh-rsa(SHA-1) 서명을 기본적으로 끄며, 레거시 서버·라우터·NAS·스위치는 그보다 새로운 것을 제시하지 못하는 경우가 많습니다. 빠르게 뚫는 것은 플래그 하나면 되고, 진짜 해결은 서버를 업그레이드하는 것입니다.
이 오류의 세 가지 변형
| 오류 | 합의하지 못한 것 |
|---|---|
no matching host key type found. Their offer: ssh-rsa | 호스트 키 서명 알고리즘 |
no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 | 키 교환(KEX) |
no matching cipher found | 암호화 알고리즘 |
세 가지 모두 같은 이야기입니다 ── 서버가 클라이언트에서 안전하지 않다는 이유로 퇴역시킨 알고리즘만 제시하는 것이죠. Their offer: 부분이 서버가 어떤 더 이상 권장되지 않는 알고리즘에 갇혀 있는지 정확히 알려줍니다.
빠르게 뚫기(연결별)
그 특정한 오래된 알고리즘을 이 호스트에 한해 다시 활성화합니다. 가장 흔한 ssh-rsa 경우:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa user@host 오래된 키 교환이나 암호의 경우, 이에 해당합니다:
ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 user@host
ssh -o Ciphers=+aes128-cbc user@host 다른 곳의 보안을 약화시키지 않으면서 한 호스트에만 영구적으로 적용하려면 ~/.ssh/config에 넣으세요:
Host old-nas
HostName 192.168.1.10
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa 진짜 해결: 서버를 업그레이드하기
+ssh-rsa 플래그는 임시방편이지 해결책이 아닙니다 ── 그 알고리즘들은 깨졌기 때문에 비활성화된 것입니다. 지속 가능한 해결은 서버가 최신 알고리즘을 제시하도록 만드는 것입니다:
- 서버의 OpenSSH를 업데이트하세요(최신 OpenSSH는 Ed25519와 rsa-sha2-256/512를 자동으로 제시합니다).
- 호스트 키가 없다면 최신 호스트 키를 생성하세요:
sudo ssh-keygen -A가 Ed25519를 포함한 호스트 키를 재생성합니다. - 업데이트할 수 없는 장비(오래된 라우터·NAS·스위치)에는 호스트별
~/.ssh/config예외가 현실적인 타협입니다 ── 약한 알고리즘을 그 한 대에만 한정하세요.
휴대폰에서
최신 모바일 클라이언트는 기본적으로 최신 알고리즘을 협상합니다 ── 보안에는 좋지만, 레거시 장비에 대해서는 같은 벽에 부딪힌다는 뜻입니다. 두 가지가 도움이 됩니다: 지원하는 어떤 서버에서든 ssh-rsa 서명 문제를 완전히 우회하는 Ed25519 키를 우선 사용하세요(TermAI가 생성해 줍니다). 그리고 정말 오래된 장비에는, 연결별로 알고리즘 옵션을 설정할 수 있는 클라이언트가 ~/.ssh/config와 같은 탈출구를 제공합니다.
자주 묻는 질문
"no matching host key type found"는 어떻게 고치나요?
ssh 명령에 -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa를 추가하거나, ~/.ssh/config의 Host 블록 안에 같은 줄을 넣으세요. 장기적으로는 서버의 OpenSSH를 업데이트하세요.
클라이언트를 업데이트한 뒤에 왜 망가졌나요?
OpenSSH 8.8 이상이 낡은 ssh-rsa(SHA-1) 알고리즘을 기본적으로 비활성화했기 때문입니다. 그것만 제시하는 서버는 다시 활성화하거나 업그레이드할 때까지 협상에 실패합니다.
ssh-rsa를 다시 활성화해도 안전한가요?
최신 알고리즘보다 약하므로, 전역으로 활성화하지 말고 그것이 필요한 특정 레거시 호스트에만 한정해야 합니다. 올바른 해결은 서버를 업그레이드하는 것입니다.
host key verification failed와는 어떻게 다른가요?
이 오류는 어떤 알고리즘을 쓸 수 있는지(협상)에 관한 것입니다. Host key verification failed는 서버의 신원 키가 바뀐 것에 관한 것입니다.
빠른 요약
- 의미: 클라이언트와 서버에 받아들일 수 있는 공통 알고리즘이 없음 ── 보통 최신 클라이언트 대 레거시 서버
- 원인: OpenSSH 8.8 이상이
ssh-rsa(SHA-1) 등 약한 알고리즘을 기본적으로 비활성화함 - 빠르게 뚫기:
-o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa(~/.ssh/config에서 호스트별로 한정) - 진짜 해결: 서버의 OpenSSH 업데이트;
ssh-keygen -A로 호스트 키 재생성 - 피하기: 지원하는 서버에서는 Ed25519 키 사용(TermAI가 생성)
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.