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.
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 😉
- Proxmox: „Failed to connect to Server“ mit Safari auf MacOS - 28. Januar 2023
- Loxone: Benachrichtigung per Telegram - 15. Januar 2022
- Telegram: Nachrichten per Bot von der Heimautomation aufs Handy - 2. Januar 2022