Wer viel mit Linux arbeitet und sich über SSH oder SCP noch mit Benutzername und Passwort anmeldet, sollte definitiv weiterlesen! Die Anmeldung über einen kryptographischen Schlüssel bringt nicht nur mehr Sicherheit sondern auch Komfort. Zudem ist der der Aufwand dafür minimal. In dem folgenden HowTo zeige ich euch leicht verständlich wie das ganze mit PuTTY bzw. PuTTYgen auf einem Debian 9 System eingerichtet wird.
Funktion
Der Public Key (Server) wird zur Verschlüsselung der Verbindung genutzt und diese kann nur mit dem Private Key (Client) wieder entschlüsselt werden. Somit kann nur derjenige die Verbindung aufbauen, der den Private Key besitzt.
Vorbereitung
Um den Public und Private Key zu erstellen, benötigt ihr ein Tool wie PuTTYgen. Das Tool ist normalerweise im Setup vom PuTTY enthalten, kann aber auch separat heruntergeladen werden. Ihr könnt natürlich auch ein anderes Tool verwenden, dass asymmetrische RSA Schlüssel erstellen kann.
Public und Private Key erstellen
Nach dem Aufruf von PuTTYgen ist “Generate” (1) der erste Button der gedrückt werden muss. Nachdem man die Maus etwas auf der freien Fläche bewegt hat, gibt PuTTYgen auch schon den Public Key aus. Als nächstes über “Save Public Key” (2) und “Save Private Key” (3) die generierten Schlüssel in einer Datei speichern.
Die Private Key (ppk) Datei entspricht später dem Kennwort für das Linux System, also bitte auch so behandeln und ggf. mit zusätzlichen Kennwort (Key Passphrase) absichern.
Ich empfehle PuTTYgen nach der Erstellung nicht zu schließen damit man sich den Public Key direkt aus dem Fenster kopieren kann. Sollte es doch so sein, kann man über “Load” die den Private Key laden.
Linux
Die Konfiguration bezieht sich auf ein Debian 9 Server Image. Zuerst sollte man wissen, dass der SSH Public Key Login für den angemeldeten User aktiviert wird. Also erstmal so wie immer mit PuTTY zum Server verbinden und folgende Befehle ausführen.
sudo mkdir ~/.ssh
sudo nano ~/.ssh/authorized_keys
In die “authorized_keys” Datei wird dann der Public Key im folgenden Format aus dem PuTTY Key Generator eingetragen. Der Public Key ist gekürzt dargestellt und die Erweiterung “rsa-key-20190629-SNI” ist ein Kommentar. Wichtig! Alles muss in einer Zeile stehen.
ssh-rsa AAAAB3NzaAAAAB...vziQUezai48oHpQ== rsa-key-20190629-SNI
Die Datei speichern und mit folgenden Befehlen den Zugriff auf die Datei schützen sowie den SSH Dienst neustarten.
sudo chmod go-rwx ~/.ssh ~/.ssh/authorized_keys
sudo service ssh restart
Der Befehl schützt nicht den Inhalt der Datei, sondern vor dem hinzufügen weiterer Public Keys!
PuTTY
Für die Konfiguration sind nur wenige Klicks notwendig. Unter Connection > Data
wird der “Auto-login username” konfiguriert. Dieser ist identisch mit dem User bei dem der Public Key eingetragen wurde.
Unter Connection > SSH > Auth
den Pfad zum Private Key angeben.
Wenn die Konfiguration jetzt gespeichert wird, bleibt die Konfiguration für die nächste Session erhalten.
WinSCP
Wenn eine neue Konfiguration über “Neues Verbindungsziel” erstellt wird, kann über “Erweitert…” der Private Key hinterlegt werden. Das Feld Kennwort kann leer bleiben. Alles andere ist wie immer.
Sicherheit
Funktioniert der Zugriff über die Public Key Authentication ohne Probleme, kann die Password Authentication abgeschaltet werden. Dazu muss in der Datei /etc/ssh/sshd_config
folgende Zeile hinzugefügt oder angepasst werden.
PasswordAuthentication no
Ist alles richtig eingerichtet, kommt man ab sofort nur noch mit dem Private Key an den Server und ist vor Brute-Force-Attacken geschützt. PuTTY meldet sich dann mit folgender Meldung nachdem man sich mit dem Benutzer anmelden möchte.
Über die Konsole ist eine Anmeldung über Username und Password natürlich weiterhin möglich!