Warum würde SSHing zu einem Server mir REMOTE HOST IDENTIFICATION HAS CHANGEED geben, aber meine known_hosts-Datei und der Server haben sich nicht geändert?

479
Stuart Horner

Setzen Sie dies hier ein, um anderen zu helfen, die möglicherweise auf dieses obskure Problem stoßen.

Ich habe kürzlich OSX von Mavericks auf El Capitan aktualisiert. Ich habe dann versucht, mich bei einem System anzumelden, bei dem ich mich zuvor angemeldet hatte, und ssh hat diesen Fehler ausgegeben:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 ECDSA key sent by the remote host is SHA256:Btm9/3heWnRLKNiuhw4efh6sQWqCr/dNJUD87ejdR6k. Please contact your system administrator. Add correct host key in /Users/myuser/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/myuser/.ssh/known_hosts:33 ECDSA host key for real.hostname.com has changed and you have requested strict checking. Host key verification failed. 

Ich habe in meiner bekannten Hosts-Datei nach dem öffentlichen Schlüssel gesucht:

real.hostname.com,192.168.0.138 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHxFq6UNxndgThogOpKGYHK0HpmK1niGPBdNVyo9Q8zX//ms3joRH+tvL0RigJ+i5f0qSUjK2j80BYyCjnCXkYJ+YIPOGioGiuFGuoFutvJLH4iXT652b2WxJJwPqAvz70Xez1ToFxsIl8H0noUNTmlXRsfY0G5gX+089aghq3hH8OGUIGoyGCrv7Dpdh+tiMDXQqz0R4yhOa0iAojv+SVqbzArT8/AxC8VzuNDww6Fi96rxK1vaFg9SJEegwAZzWcbUFopA4cb8r7sQ5tHG56L5zX9/Yadg4/Pf02O6dP62M1rW7x6VoG/gEa72axqV/izm7/ws7SASsiKtHKRijf 

Ich ging dann zu einem anderen Rechner und verifizierte, dass der Schlüssel oben mit dem in der known_hosts-Datei des anderen Rechners übereinstimmte. Ich habe dann von diesem anderen Rechner ohne Fehler oder Warnungen eine Verbindung zu real.hostname.com hergestellt.

Warum ist das passiert?

3

1 Antwort auf die Frage

3
Stuart Horner

Der Schlüssel hier ist das Upgrade von Mavericks zu El Capitan. Es stellt sich heraus, dass der ssh-Client in El Capitan aktualisiert wurde. Wenn er versucht, eine Verbindung zu einem ssh-Server herzustellen, verwendet er jetzt einen anderen Schlüsseltyp anstelle von "ssh-rsa".

In diesem Fall versucht ssh "ecdsa-sha2-nistp256" zu verwenden. Wenn Sie auf einem neueren System "ssh-keyscan" in der Domäne ausführen, spuckt es sowohl den ssh-rsa-Schlüsseltyp als auch ecdsa-sha2-nistp256 aus:

myname@myhost-1:~$ ssh-keyscan real.hostname.com # real.hostname.com SSH-2.0-OpenSSH_6.6.1 real.hostname.com ecdsa-sha2-nistp256 k8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvAAIbmlzdHAyNTYAAABBBAOq0InBTTdCqbaackF5biy0QghSFZBV/MRoL936yOAXgPAnZlHl+zQ5weK7nM2UNt2qGxqWKLSZ6gE6slZnQkw= # real.hostname.com SSH-2.0-OpenSSH_6.6.1 real.hostname.com ssh-rsa k8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvk8DaAFOzRyv0kbP8Ua48IIk8DaAFOzRyvFq6UNxndgThogOpKGYHK0HpmK1niGPBdNVyo9Q8zX//ms3joRH+tvL0RigJ+i5f0qSUjK2j80BYyCjnCXkYJ+k8DaAFOzRyv0kbP8Ua48IIiXT652b2WxJJwPqAvz70Xez1ToFxsIl8H0noUNTmlXRsfY0G5gX+HGXoLuLsr9VEghX2oyGCrv7Dpdh+tiMDXQqz0R4yhOa0iAojv+SVqbzArT8/AxC8VzuNDww6Fi96rxK1vaFg9SJEegwAZzWcbUFopA4cb8r7sQ5tHG56L5zX9/Yadg4/Pf02O6dP62M1rW7x6VoG/gEa72axqV/izm7/ws7SASsiKtHKRijf 

Wenn die neuere Version von ssh versucht, die ecdsa-sha2-nistp256-Schlüsselzeichenfolge mit der ssh-rsa-Schlüsselzeichenfolge abzugleichen, schlägt sie fehl, anstatt zu erkennen, dass es sich um zwei verschiedene Schlüsseltypen für dieselbe Maschine handelt.

Ich halte das für einen Fehler, aber ich habe keine Ahnung, wo ich es posten würde.