Public Key Authentication

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.

Public Key Authentication

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.

Public Key Authentication -PuTTY Key Generator

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.

Public Key Authentication - PuTTY Configuration - Auto-Login

Unter Connection > SSH > Auth den Pfad zum Private Key angeben.

Public Key Authentication - PuTTY Configuration - Private Key

Wenn die Konfiguration jetzt gespeichert wird, bleibt die Konfiguration für die nächste Session erhalten.

Public Key Authentication - PuTTY Configuration - Session

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.

Public Key Authentication - PuTTY Configuration - Private Key

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.

Public Key Authentication - Fatal Error

Über die Konsole ist eine Anmeldung über Username und Password natürlich weiterhin möglich!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert