Die Anleitung zeigt, wie man seinen Server mithilfe von Keys absichert. Additional können auch noch weitere Sicherheitseinstellungen vorgenommen werden, dazu aber später. Ich empfehle euch auf der offiziellen Seite von PuTTY den Installer herunterzuladen, ansonsten benötigt ihr PuTTY und PuTTYgen um eure Keys zu erstellen.

PuTTY herunterladen



1. Als erstes öffnen wir PuTTYgen um unser Schlüsselpaar zu erzeugen. Das Schlüsselpaar besteht aus einem privaten und öffentlichen Schlüssel. Bitte überprüft, dass das Rot markierte Feld mit eurem übereinstimmt.



2. Als nächstes drückt ihr zunächst auf „Generate“ und bewegt eure Maus in dem oberen Feld.


3.1 Wenn der Schlüssel generiert ist, habt ihr im Feld euren „public key“, dieser wird in den nächsten Schritten auf dem Server gespeichert wird.
3.2 Im zweiten Feld habt ihr nun drei Felder die ihr verändert. Der „Key Fingerprint“ ist salopp gesagt nur ein Name für euer Schlüssel. Der Name wird während des Login Vorgangs angezeigt. Zu Demonstrationszwecken tippe ich ‚linuxpirat.de-sshkey‘ ein.
3.3 Die anderen beiden Eingabefelder (key passphrase & confirm passphrase“) dienen der Authentifizierung, hier gebt ihr ein Passwort eurer Wahl ein.
3.4 Im dritten Feld könnt ihr euch nun euren privaten Schlüssel abspeichern. Klickt auf den im Bild gelb unterlegten Button und speichert ihn ab. Ich empfehle den Schlüssel separat auf einen USB Stick zu speichern.



Wenn der Schlüssel abgespeichert ist, sollte es wie folgt aussehen:



4. Loggt euch in euren Server als root Benutzer ein. Erstellt das Verzeichnis für euren public Key.
mkdir ~/.ssh
chmod 700 ~/.ssh

4.1 Erstellt nun mit vi oder dem Editor nano eine Datei in dem neu erstellen Verzeichnis.
nano ~/.ssh/authorized_keys

4.2 Jetzt kopiert ihr euren public key in die Datei.



4.3 Schließt die Datei mit STRG + X und bestätigt die Speicherung mit „y“ und Enter.

4.4 Die Datei darf nur von dem Benutzer beschreibbar oder lesbar sein, deshalb führen wir folgenden Befehl aus:
chmod 600 ~/.ssh/authorized_keys
Bevor wir uns selbst ausschließen, testen wir, ob wir uns mit dem Key anmelden können. Schließt dazu PuTTY und öffnet es erneut.

5. Gebt wie gewohnt eure IP Adresse des Servers ein und klickt in der linken Spalte auf SSH bis der Menüpunkt „Auth“ zu sehen ist. Wählt hier euren abgespeicherten Key aus, in meinem Fall „server-key“.


5.1 Navigiert zurück in das Hauptmenü. Im dritten Feld habt ihr nun die Möglichkeit einen beliebigen Namen für euren Server einzutippen. Speichert im Anschluss die Einstellung ab.


Der Server scheint den Schlüssel zu akzeptieren. Es erscheint euer „Name“ für den Schlüssel.


6. Ihr müsst nun euer Passwort/Passphrase eingeben was zuvor im PuTTYgen festgelegt worden ist. Wenn ihr bis hier hin die Anleitung richtig ausgeführt habt, solltet ihr euch einloggen können.

7. Abschließend müssen wir den Server auf unseren Schlüssel anpassen. Schließlich soll sich keine Person ohne den Key einloggen können. Öffnet die ssh Konfigurationsdatei mit:
nano /etc/ssh/sshd_config

7.1 In der Datei müsst ihr folgende Werte verändern:
PasswordAuthentication no
UsePAM no
Protocol 2

PasswordAuthentication von ‚yes‘ auf ’no‘
UsePAM von ‚yes‘ auf ’no‘
Unter UsePAM schreibt ihr „Protocol 2“

7.2 Additional könnt ihr euren Port auf eine beliebige Zahl ändern. Als Beispiel nehme ich 2000. Dies erhöht die Sicherheit zusätzlich.

7.3 Schließt die Datei mit STRG + X und bestätigt die Speicherung mit „y“ und Enter.

7.4 Um die Änderung wirksam zu machen, müsst ihr euren ssh Dienst neustarten:
/etc/init.d/ssh restart

7.5 Fertig! Euer Server ist weitesgehend von ungewollten Zugriff geschützt. Ich erinnere euch erneut, speichert eure private Schlüsseldatei extern ein zweites mal ab.

Troubleshooting


1. Stellt sicher das ihr in PuTTY eure Schlüsseldatei ausgewählt habt. Wenn der Port geändert wurde, muss dieser auch in PuTTY bei den Verbindungseinstellungen geändert werden!
2. Wenn euch nun der SFTP Zugriff verweigert wird, stellt sicher, dass auch hier der Schlüssel angegeben wurde.