SSH-Verbindungen mit Public Key (Schlüsseldatei) absichern
Hier nur eine kurze Anleitung, wie man SSH-Verbindungen unter Linux mit einem Public Key Verfahren absichern kann.
Dies ist vor allem zu empfehlen, wenn der SSH-Zugang vom Internet aus zugänglich sein soll.
Denn normale Nutzer/Passwort Verfahren lassen sich deutlich einfacher über Bruteforce-Attacken knacken.
Der Aufbau ist wie folgt:
Es wird ein private Key auf dem Client (Laptop/Smartphone/etc.) und ein public Key auf dem Server (z.B. dem Raspberry Pi) gespeichert.
Diese Dateien lassen sich direkt in Linux, aber auch in Putty generieren.
(Kurzinfo: Putty hat dabei ein angepasstes Verfahren, aber die von Linux erzeugten private Keys können auch für Putty konvertiert werden.)
Außerdem muss die SSH-Config entsprechend angepasst werden, sodass beispielsweise der Zugang über das Nutzer/Passwort Verfahren verhindert wird.
Zunächst legen wir uns ein Verzeichnis für den Public Key auf dem Server an (dieses muss für jeden Nutzer angelegt werden)
mkdir -p .ssh/KEYS/
mit dem Befehl
ssh-keygen -t rsa -b 4096
wird ein Schlüsselpaar erzeugt. Der Dateiname ist dabei egal. Wenn du beispielsweise nur „mykey“ eingibst, werden die Dateien „mykey“ und „mykey.pub“ in deinem home Verzeichnis erzeugt.
„mykey.pub“ ist dabei der Public Key, der auf dem Server zu finden sein muss.
Verschiebe ihn am besten in den Ordner .ssh/KEYS/ (Beispielsweise /home/pi/.ssh/KEYS/
oder /root/.ssh/KEYS/
für den root-Zugang)
Nun passen wir noch die /etc/ssh/sshd_config
an.
# Für Root-Zugang (optional) PermitRootLogin yes # Für das Public Key Verfahren PubkeyAuthentication yes # Die Pfadangabe für den Public Key AuthorizedKeysFile .ssh/KEYS/mykey.pub # Nutzer/Passwort Verfahren ausschalten PasswordAuthentication no
Die entsprechenden Zeilen sollten, sofern nicht bereists eingekommentiert, in der /etc/ssh/sshd_config
bereits durch eine # auskommentiert vorhanden sein.
Anschließend können die Änderungen sudo service ssh restart & sudo service ssh restart
übernommen werden.
Achte darauf, dir vorher die „mykey“ datei auf deinen Client zu kopieren.
# Nutzer/Passwort Verfahren zur Sicherheit noch kurz eingeschaltet lassen PasswordAuthentication yes
Nun kannst du dich (beispielsweise mit Putty) mit dem Befehl
start putty -ssh pi@10.1.1.11 -i "C:\Users\user\.ssh\KEYS\mykey.ppk"
auf dein SSH verbinden. Dazu musst du deinen Private Key „mykey“ nur mit Hilfe des PuTTY Key Generator importieren und als *mykey.ppk“ abspeichern (konvertierern).
In anderen SSH-Konsolen funktioniert dies ähnlich.
Um weitere Public Keys zuzulassen, genügt es eine weitere Zeile in der „mykey.pub“ hinzuzufügen.
Wenn alles läuft:
# Nutzer/Passwort Verfahren ausschalten PasswordAuthentication no
Und dann ist alles ein bisschen sicherer.