OS X: SSH-Key-Prüfung im lokalen Netzwerk abschalten

Loggt man sich erstmals per SSH auf einem Host-Computer ein, wird der SSH-Key des Host-Computers auf dem eigenen System gespeichert. Bei jeder weiteren Verbindung zu dessen IP-Adresse wird der erneut übermittelte Key mit dem zuvor gespeicherten verglichen und auf Veränderung geprüft. Sollte beim erneuten Verbinden nun ein anderes System unter der ursprünglich verwendeten IP-Adresse antworten, wird  davor gewarnt, dass sich der Key des Ziel-Systems geändert hat und der Vorgang abgebrochen.

SSH-Key-Überprüfung fehlgeschlagen

SSH: Host-Key-Überprüfung fehlgeschlagen

 

Beim Aufbau einer SSH-Verbindung identifiziert sich das Ziel-System mit einem RSA-, DSA- oder ECDSA-Zertifikat. Dadurch lässt sich erkennen, ob es sich tatsächlich um das gewünschte Ziel-System handelt, oder ein anderer Computer sich nur dafür ausgibt (Man-in-the-middle-Attacke). Weiteres hier.

Was eigentlich der Sicherheit dient, kann im lokalen Netzwerk schonmal etwas nerven. Passiert bei mir ab und an, da ich recht viel mit SSH arbeite und durch Raspberry Pis und andere Computer immer etwas Bewegung in der Netzwerkstruktur habe.

Einen bereits vorhandenen SSH-Key kann man mit dem Befehl…

$ ssh-keygen -R <IP-Adresse>

…löschen. Die Überprüfung der SSH-Keys lässt sich aber auch abschalten – für einzelne Hosts, Subnetze, oder generell. Für mein lokales Netzwerk schalte ich die Überprüfung aus, für externe Hosts lasse ich sie bestehen.

Die Einstellungen können systemweit in der Datei /etc/ssh_config, oder nur für den jeweiligen Nutzer in der Datei ~/.ssh/config festlegen werden. Sollte die Datei nicht vorhanden sein, wird sie einfach erstellt.

$ nano ~/.ssh/config

Diese befüllen wir nun mit folgendem Inhalt:

Host 192.168.243.*
        StrictHostKeyChecking no
        UserKnownHostsFile /dev/null

Mit der ersten Zeile wird der Host festgelegt, für den die nachfolgenden Regeln gelten sollen. In meinem Fall ist das mein gesamtes Heimnetz. Zeile 2, StrictHostKeyChecking no, sorgt dafür, dass bei einem unbekannten Host in diesem Netzwerk nicht nachgefragt wird, ob man diesem Host vertraut. Zeile 3 bewirkt, dass der (dennoch) übermittelte Fingerprint nicht wie normal unter ~/.ssh/known_hosts gespeichert, sondern einfach verworfen wird. Datei schließen, Änderungen speichern. Die Einstellungen sind sofort aktiv und greifen bei der nächsten SSH-Verbindung.

Wenn jetzt noch veraltete SSH-Keys gespeichert sind, müssen diese, oder gleich die ganze Datei, die die Keys beinhaltet, gelöscht werden:

$ rm ~/.ssh/known_hosts

Fortan sollte die Meldung, dass etwas „böses“ passiert ist, nicht mehr erscheinen – zumindest nicht in meinem lokalen Netzwerk 😉

Sebastian

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

WordPress Cookie Hinweis von Real Cookie Banner