Unable to negotiate with xxx.xxx.xxx.xxx port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
위와 같은 메시지가 출력되면서 SSH 서버에 접속이 되지 않는 문제를 해결해 보자.
ssh-rsa 서명 방식 (scheme) 은 OpenSSH 8.8 릴리스 (release) 부터 권장되지 않는다.
OpenSSH 8.8 은 2021년 8월에 발표되었다.
아직도 이 방식을 사용하는 구형 SSH 서버가 많기 때문에 이러한 문제가 발생한다.
1. HostKeyAlgorithms=+ssh-rsa 옵션 사용
첫번째 방법은 커맨드 라인에서 HostKeyAlgorithms=+ssh-rsa 옵션을 사용하는 것이다.
아래와 같은 명령으로 구형 SSH 서버에 접속한다.
ssh -oHostKeyAlgorithms=+ssh-rsa userid@211.110.80.91
2. ~/.ssh/config 파일 수정
두번째 방법은 홈 디렉토리의 ~/.ssh/config 파일을 수정하는 것이다.
편집기로 파일을 연다.
vi ~/.ssh/config
파일에 아래 내용을 추가한다.
Host 211.110.80.91 HostKeyAlgorithms +ssh-rsa
211.110.80.91 은 SSH 서버의 IP 주소이다.
파일을 저장하고 편집기를 닫는다.
아래와 같은 명령으로 구형 SSH 서버에 접속한다.
ssh userid@211.110.80.91
이 경우에는 HostKeyAlgorithms=+ssh-rsa 옵션을 사용할 필요가 없다.