Warum unterscheiden sich die Schlüssel der SSH-Hosts beim Verbinden, wenn die Hostschlüssel gleich sind?

Warum unterscheiden sich die Schlüssel der SSH-Hosts beim Verbinden, wenn die Hostschlüssel gleich sind?

Es gibt 3 Maschinen: A (von wo aus ich mich mit B und C verbinde), B und C.
B und C haben dieselben SSHD-Hostschlüssel (sie wurden kopiert, sind also 100 % gleich, SSHD wurde ebenfalls neu gestartet, identische sshd_config-Datei).

Auf C sieht die Datei known_hosts folgendermaßen aus:

C:~/.ssh # grep B *
C:~/.ssh # grep A *
known_hosts:ssh-rsa xxxx...xxxx
C:~/.ssh # 

Wenn wir versuchen, eine Verbindung von C zu A herzustellen, bietet „A“ seinen RSA-Hostschlüssel an.
Wenn wir versuchen, eine Verbindung von C zu B herzustellen, bietet „B“ seinen ECDSA-Hostschlüssel an.

Frage:Warum? Wäre es nicht logisch, dass der Server „A“ und der Server „B“ beide anbieten sollten, z. B. ihre RSA SSHD-Hostschlüssel?

Antwort1

ECDH/ECDSA-Schlüssel werden bevorzugt, wenn ein Hostschlüssel zum ersten Mal gelernt wird. Da Host C den RSA-Schlüssel von Host A bereits kennt, verwendet er diesen weiterhin. Da Host C jedoch nichts über die Schlüssel von Host B weiß, wird ECDH/ECDSA verwendet.

(Ich verwies auf dieVersionshinweise für 5.7, als ECDH/ECDSA eingeführt wurde).

Fragen, die ich habe: Werden beide Schlüssel benötigt? Nun ja. Nicht jede SSH-Installation unterstützt ECDSA, Sie benötigen also RSA. (Putty unterstützt beispielsweise noch kein ECDSA.) Was passiert, wenn ich nur ECDSA hatte? Hängt davon ab, wer versucht, Sie zu kontaktieren. Wenn sie ECDSA unterstützen, funktioniert alles wie erwartet. Wenn nicht, tritt eine Fehlermeldung irgendeiner Art auf. Welches ist besser? Ich persönlich weiß es nicht. ECDSA benötigt weniger Leistung, daher habe ich festgestellt, dass es auf älterer Hardware schneller läuft. Und da OpenSSH es gegenüber RSA bevorzugt, gehe ich davon aus, dass die Entwickler denken, dass ECDSA besser ist.

Antwort2

Haben die Server, mit denen Sie eine Verbindung herstellen möchten, die gleiche /etc/ssh/sshd_configVersion von OpenSSH (und OpenSSL) (die Angaben zu identischen Konfigurationen und wo Sie eine Verbindung herstellen, scheinen etwas widersprüchlich zu sein)? ECDH/ECDSA wurde in OpenSSH 5.7p1 eingeführt. Wenn also ein Server älter ist, wird die Schlüsseldatei einfach ignoriert.

verwandte Informationen