본문 바로가기
Developer/Etc

[Mac] Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa 해결 방법

by 김씩씩 2023. 5. 22.

Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa 해결 방법

 

맥 터미널에서 ssh 를 사용하여 서버에 접속하려고 할 때, 

Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa

위와 같은 에러가 발생하는 상황에서 해결하는 방법을 알려드리도록 하겠습니다.

 

문제 원인

no matching host key type found. Their offer: ssh-rsa

즉, SSH 서버를 SSH 클라이언트에 인증하는 공개 키 알고리즘(호스트키 알고리즘) 중 ssh-rsa가 활성화가 되어있지 않아서 발생하는 에러입니다.

그렇다면 ssh-rsa 알고리즘에 대해서 활성화를 시켜주면 되겠습니다.

 

 

해결방법

HostKeyAlogorithms 옵션을 통해 원하는 알고리즘을 활성화 시켜주면 문제를 해결할 수 있습니다.

 

ssh 사용시 옵션으로 ssh-rsa 활성화

ssh -o "HostKeyAlgorithms ssh-rsa" user@hostname

위와 같이 ssh 로 접속시에 -o 옵션의 내용으로 "HostKeyAlgorithms ssh-rsa" 를 추가하는 것으로 문제를 해결할 수 있습니다.

 

전역으로 ssh-rsa 활성화

리눅스 ssh 클라이언트 설정 파일인 /etc/ssh/ssh_config 경로의 파일을 수정하여 전역으로 활성화 해준 뒤 사용할 수 있습니다.

sudo vim /etc/ssh/ssh_config

 

위 명령어를 통해 vim 으로 리눅스 ssh 클라이언트 설정 파일을 열어 수정을 시작합니다.

 

아마 대부분의 내용이 주석처리가 되어있을 것이고 아래로 내려가보면

Host *

즉 모든 호스트에 대해서 설정을 해주는 곳의 하단에

HostkeyAlgorithms +ssh-rsa

 

위 내용을 추가하는 것으로 호스트키 알고리즘에 ssh-rsa 추가 활성화 시켜줍니다.

만약 호스트 별로 따로 설정해주고 싶으시다면 Host 를 따로 작성하여 진행해주시면 되겠습니다.

 

설정해주신 뒤 다시 ssh로 서버에 접속해보시면,

위와 같이 에러 없이 접근이 가능해졌고 원래 사용하던 대로 비밀번호를 입력해달라고 하는 모습을 볼 수 있습니다.

 

 

이상으로 Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa 해결 방법에 대한 설명을 마치도록 하겠습니다.

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글