SSH-Login mit Schlüsseldateien (Public-/Private-Key)

Die Sicherheit kann erhöht werden, wenn die Anmeldung nicht mehr über Benutzer und Passwort ermöglicht wird, sondern mit speziellen Schlüsseldateien. Dazu werden ein privater und ein öffentlicher Schlüssel benötigt. Der öffentliche Schlüssel wird einem bestimmten Benutzer zugeordnet, so ist die Anmeldung nur noch mit diesem Benutzer möglich. Der private Schlüssel ist auf jedem Client notwendig, der sich per SSH auf den Server verbinden will.

Eine Passwort-Eingabe (Passphrase) kann weiterhin verwendet werden, denn falls der private Schlüssel doch in die falschen Hände gerät, dann schützt zumindest noch diese Abfrage ein wenig.

Erstellen der Schlüsseldateien

Im ersten Schritt wird das Schlüsselpaar erstellt. Hierfür nutze ich das Tool PuTTY Key Generator (zur Downloadseite):

Anstatt 1024 würde ich eher zu 4096 bits raten, das habe ich im Screenshot etwas vermasselt…

Durch den Klick auf „Generate“ werden die Schlüssel erstellt, dafür muss die Maus in dem Fenster hin und her bewegt werden im Bereich „Key“. Nach einer kurzen Zeit sind die Schlüsseldateien erstellt. Nun ist es wichtig, dass noch eine Key passphrase definiert wird, hier empfehle ich ein min. acht Zeichen langes kryptisches Passwort bestehend aus Zahlen, Buchstaben und Sonderzeichen. Über die Schaltfäche „Save private key“ muss der private Schlüssel gespeichert werden. Diese ist notwendig, damit Ihr Euch später per SSH anmelden könnt.

Der Login soll auch nur für einen Benutzer möglich sein. Dafür verwenden wir den Benutzer, der zuvor als Alternativanmeldenutzer zum root-Benutzer angelegt worden ist. Falls Ihr den vorherigen Schritt nicht durchgeführt habt, solltet Ihr wissen, dass der sshuser für einen vorher angelegten Benutzer steht.

Schlüssel dem SSH-User zuweisen

Der öffentliche Schlüssel muss bei diesem Benutzer wie folgt hinterlegt werden (Wichtig: der Schlüssel darf nicht durch andere Benutzer eingesehen oder gar verändert werden, somit sollte der Anmeldebenutzer Inhaber der Datei sein und als einziger Schreib- und Leserechte besitzen):

su – sshuser
mkdir /home/sshuser/.ssh/
touch /home/sshuser/.ssh/authorized_keys
chmod 600 /home/sshuser/.ssh/authorized_keys

In die Datei „authorized_keys“ wird der Inhalt des öffentlichen Schlüssels rein kopiert, zum Beispiel per vi. Wichtig ist, dass Ihr den Key aus dem Bereich „Public key for pasting into OpenSSH authorized_keys file“ verwendet:

SSH-Login mit Schlüsseldateien (Public-/Private-Key)

Die SSH-Konfigurationsdatei muss nun soweit editiert werden, dass die Anmeldung mit diesem Verfahren erlaubt wird. Dafür ist in der Datei /etc/ssh/sshd_config die folgende Zeile

PubkeyAuthentication no

nach

PubkeyAuthentication yes

zu ändern.

Die Konfiguration des SSH-Dienstes muss neu eingelesen werden, um die Änderung zu aktivieren:

service ssh reload

An dieser Stelle ist es sehr wichtig, dass das Verfahren getestet wird. Wird jetzt auch der Login mit normalen Passwort deaktiviert und funktioniert die Anmeldung per Schlüsseldateien nicht, dann habt Ihr Euch aus dem System ausgeschlossen.

Konfiguration des PuTTY-Client

In PuTTY wird die IP-Adresse oder der FQDN vom Servereingetragen:

SSH-Login mit Schlüsseldateien (Public-/Private-Key)


Speichert diese Verbindung ab, da weitere Einstellungen notwendig sind. Unter „Connection → Data“ im Feld „Auto-login username“ ist der Benutzername einzutragen, mit dem der Login durchgeführt wird. Hier wählt Ihr den Benutzer, den Ihr für diesen Zugriff eingerichtet und den Key zugewiesen habt.

SSH-Login mit Schlüsseldateien (Public-/Private-Key)

Der Private-Key in Form einer Datei wird unter „Connection → SSH → Auth“ im Feld „Private key file for authentication“ ausgewählt. Das ist die Datei, die Ihr im Putty Key Generator erstellt und gespeichert habt.

SSH-Login mit Schlüsseldateien (Public-/Private-Key)

Mit diesen Einstellungen kann die Verbindung getestet werden. Es wird zum Login nur noch die „Passphrase“ abgefragt. Die restliche Anmeldung erfolgt automatisch.

Deaktivieren des Logins mit Benutzername und Passwort

Erst wenn die Anmeldung funktioniert kann der reine Login mit Benutzernamen und Passwort deaktiviert werden. Dafür ist die SSH-Konfigurationsdatei /etc/ssh/sshd_config zu editieren. In dieser Datei sind die Zeilen

PasswordAuthentication yes
ChallengeResponseAuthentication yes

nach

PasswordAuthentication no
ChallengeResponseAuthentication no

abzuändern. Die Änderung wird aktiv, wenn die Konfiguration des SSH-Dienstes neu eingelesen wird:

service ssh reload

Das könnte Dich auch interessieren …

Schreibe einen Kommentar

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