splitt-it.de

my digital lifestyle

Die Sicherheit kann weiterhin erhöht werden, wenn die Anmeldung nicht mehr über Benutzer und Passwort ermöglicht wird, sondern mit speziellen Schlüsseldateien. Dazu wird 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) sollte weiterhin verwendet werden, denn falls der private Schlüssel doch in die falschen Hände gerät, dann schützt zumindest noch die Abfrage nach dem Passwort.

Erstellen der Schlüsseldateien

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

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 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):

[cc lang=’text‘ line_numbers=’false‘]su – sshuser
mkdir /home/sshuser/.ssh/
touch /home/sshuser/.ssh/authorized_keys
chmod 600 /home/sshuser/.ssh/authorized_keys[/cc]

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:

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

[cc lang=’text‘ line_numbers=’false‘]PubkeyAuthentication no[/cc]

nach

[cc lang=’text‘ line_numbers=’false‘]PubkeyAuthentication yes[/cc]

zu ändern.

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

[cc lang=’text‘ line_numbers=’false‘]/etc/init.d/ssh reload[/cc]

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:


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.

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.

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

[cc lang=’text‘ line_numbers=’false‘]#PasswordAuthentication yes
ChallengeResponseAuthentication yes[/cc]

nach

[cc lang=’text‘ line_numbers=’false‘]PasswordAuthentication no
ChallengeResponseAuthentication no[/cc]

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

[cc lang=’text‘ line_numbers=’false‘]/etc/init.d/ssh reload[/cc]

?