Wo wird der SSH-Server-Fingerabdruck generiert/gespeichert?

Wo wird der SSH-Server-Fingerabdruck generiert/gespeichert?

Ich habe openssh-server installiert und mit einen Schlüssel erstellt ssh-keygen. Dann habe ich versucht, ihn mit lokaler Portweiterleitung zu testen, indem ich ausgeführt habe ssh -L 8080:www.nytimes.com:80 127.0.0.1. Der Schlüsselfingerabdruck, den dieser Befehl liefert, ist jedoch nicht der Schlüsselfingerabdruck, den ich erhalte, wenn ich ausgeführt habe ssh-keygen -l. Selbst wenn ich mein .ssh-Verzeichnis lösche, erhalte ich immer noch denselben Fingerabdruck, der nicht der ist, den ich mit erstellt habe ssh-keygen. Gibt es einen anderen Schlüssel auf meinem System? Wo ist dieser Schlüssel? Wie kann ich diesen Schlüssel für die Verwendung durch openssh-server auswählen?

Antwort1

Wenn Sie eine SSH-Sitzung durchführen, sind zwei verschiedene Schlüsselpaare (mit einem Fingerabdruck für jedes Paar) beteiligt. Eines davon ist der Schlüssel des Benutzers, der in gespeichert ist ~/.ssh. Die SSH-Schlüsselidentität des Benutzers wird manchmal als Anmeldeinformation verwendet, um sich bei einem anderen Computer anzumelden (wenn Sie die schlüsselbasierte Anmeldung eingerichtet haben).

Der andere ist der Schlüssel des SSH-Servers. Dies ist der Schlüssel, dessen Fingerabdruck Sie sehen, wenn Sie sich zum ersten Mal mit einem anderen Server verbinden. Die Identität dieses Schlüssels wird verwendet, um sicherzustellen, dass Sie sich bei dem SSH-Server anmelden, bei dem Sie sich anmelden möchten. Dies ist wichtig, wenn Sie Passwörter verwenden, da Sie nicht versehentlich versuchen möchten, sich bei einem Angreifer anzumelden: Der Angreifer würde Ihr Passwort erhalten, wenn Sie es eingeben. Dann könnte sich der Angreifer bei dem Computer anmelden, bei dem Sie sich anzumelden glaubten! (Dies wird als„Man-In-The-Middle-Angriff“)Die Schlüssel, die ein SSH-Server zur Identifizierung bei Ihrer Anmeldung verwendet, befinden sich in /etc/ssh/und haben normalerweise etwa die Bezeichnung ssh_host_rsa_key.

Mit der Einstellung können Sie tatsächlich ändern, wo der SSH-Server in der Datei nach dem Schlüssel sucht ./etc/ssh/sshd_configHostKey /path/to/host/key

Standardmäßig ssh-keygenerstellt ein Schlüssel für den aktuellen Benutzer, der standardmäßig in gespeichert wird ~/.ssh. Das Format eines Benutzerschlüssels und eines Serverschlüssels ist gleich. Der Unterschied besteht darin, wo sie abgelegt werden und ob /etc/ssh/sshd_configeine HostKeyDirektive darauf verweist.Wenn Sie das OpenSSH-Server-Paket installieren, werden automatisch Schlüssel generiert, die der Server verwenden kann. Von dort stammen die Schlüssel mit dem unbekannten Fingerabdruck.Wenn Sie den Fingerabdruck des (RSA*)-Schlüssels des SSH-Servers sehen möchten, können Sie ausführen ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

*Es gibt verschiedene Verschlüsselungsalgorithmen. Jeder verwendet einen anderen Schlüssel. Gängige sind DSA (schwach), RSA (alter Standard) und ECDSA (neuer Standard).

Antwort2

SSH-Hostschlüssel werden in gespeichert /etc/ssh/, das Sie im Allgemeinen nicht auswählen müssen. Diese Schlüssel wurden bei der Installation des OpenSSH-Server-Pakets generiert.

Sie können den Fingerabdruck der Schlüssel auflisten, ssh-keygen -l -f /etc/ssh/ssh_host_key.pubmüssen dies jedoch für jeden öffentlichen Schlüssel wiederholen.

 

Antwort3

ssh-keygengeneriert den SSH-Fingerabdruck nicht auf Ihrem Server. Dieser wird vom SSH-Server generiert. ssh-keygenerstellt ein öffentliches/privates Schlüsselpaar für Ihr System, mit dem Sie später auf Ihren SSH-Server zugreifen können, ohne einen Passcode im Klartext an den Server übertragen zu müssen.

Der Fingerabdruck Ihres Servers wird offensichtlich nicht als Fingerabdruck des von Ihnen generierten öffentlichen/privaten Schlüsselpaars angezeigt, da diese voneinander getrennt sind.

verwandte Informationen