이전에 연결했던 서버에 연결하려고 합니다. 그러나 최신 버전의 OpenSSH는 DSA 키를 사용하지 않습니다. 연결하려고 하면 다음 오류가 발생합니다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ***RSA*** key sent by the remote host is
SHA256:mxVLlJWwlY7pRm1nhOksy0eS4KIQbAE8nv7x0p3Ds8Q.
Please contact your system administrator.
Add correct host key in /Users/john/.ssh/known_hosts to get rid of this message.
Offending ***DSA*** key in /Users/john/.ssh/known_hosts:25
***RSA*** host key for example.com has changed and you have requested strict checking.
Host key verification failed.
known_hosts
내가 찾은 것은 DSA 키가 저장되었지만 아직 RSA 키가 저장되지 않았다는 것이 문제라는 것입니다 . RSA 키를 추가하면 이 문제가 해결됩니다.
메시지가 오해의 소지가 있는 것 같습니다. RSA 호스트 키가 변경되지 않았습니다.
OpenSSH에서 아직 RSA 키가 없다는 사실을 알려주고 키를 추가할 수 있게 되기를 원합니다. 또한 DNS의 키를 확인하고 Matching host key fingerprint found in DNS.
(내가 설정한) 메시지를 표시해야 합니다.
OpenSSH에 버그를 보고할 가치가 있나요?
답변1
메시지가 오해의 소지가 있는 것 같습니다. RSA 호스트 키가 변경되지 않았습니다.
메시지가 유효합니다. 귀하의 키 known_hosts
는 DSA이고 서버는 RSA를 보내며 서로 다르며 잘못되었습니다.
OpenSSH 6.8부터 서버는 호스트 키 교체 또는 사용 중단을 단순화하기 위해 인증 후 모든 키를 보냅니다.
충분히 새로운 클라이언트와 서버가 있는 경우 해결 방법을 사용하여 일시적으로 DSA 키를 수락하고 클라이언트가 새 키를 선택하도록 합니다.
ssh -oHostKeyAlgorithms=+ssh-dss your_remote_host
서버에 이전 버전이 있는 경우 질문에 설명된 대로 이 작업을 수동으로 수행해야 합니다.
또한 새 키를 수락하도록 구성된 클라이언트가 필요합니다 UpdateHostKeys yes
.