Heute erkläre ich wie man SSH auf seinem Debian Server so einstellt dass man einen korrekten Schlüssel braucht um sich anzumelden. Auch werden wir die normale Benutzername -> Passwort Anmeldung und den Root Login deaktivieren.
Ich gehe von einem frisch installierten Debian minimal System aus und wir benutzen Putty. Desweiteren wird Puttygen.exe und pageant.exe später benötigt.
Als erstes loggen wir uns auf unseren Server als root ein, dazu geben wir einfach die IP zu ihm im IP Eingabefeld ein, den Port lassen wir so wie er ist. Dies ist der Standardport für SSH. Nun sollten wir nach einem Klick auf Open mit dem Server verbunden sein. Login als root, und dann das Passwort eingeben welches ihr für euren root Account habt. Nun legen wir einen neuen Benutzer an den wir fortan zum Login benutzen.
In meinem Beispiel nehme ich meinen Vornamen als Benutzernamen. Nun wird man noch nach dem UNIX Passwort (legt euer Passwort hier fest) und nach zusätzlichen Informationen wie der volle Name, Raumnummer usw. gefragt. Bis auf das Passwort könnt ihr den Rest freilassen. Bestätigt dann mit y und Enter. Startet nun eine neue Session in Putty und gebt bei ‘login as’ euren eben erstellten Benutzer ein, dann noch das eben gewählte Passwort und ihr seid nun angemeldet.
Startet nun puttygen.exe und klickt auf ‘Generate’, bewegt die Maus im Puttygen Fenster etwas herum, euer Schlüssel ist nun generiert. Unter ‘Key comment’ könnt ihr eure Mailadresse eintragen oder auch das Feld frei lassen. Unter ‘Key passphrase’ tragt ihr nun ein sicheres Passwort ein, wiederholt es im Feld darunter. Merkt euch das Passwort! Nun klickt auf ‘Save public key‘ und speichert das als .txt-Datei ab. Dann noch auf ‘Save private key‘ und als .ppk-Datei an einem Ort auf eurem PC abspeichern der sicher ist. Merkt euch wo ihr das gespeichert habt! Kopiert nun das was oben im Feld steht (komplett). Nun gebt in dem Putty Fenster, bei dem ihr als neuer Benutzer (nicht root) angemeldet seid. Gebt nun folgendes ein:
| 1 | mkdir ~/.ssh/ # erstellt in eurem /home/ Verzeichnis den Ordner .ssh |
| 2 | chmod 700 ~/.ssh # Gibt für .ssh Schreibrechte |
| 3 | nano ~/.ssh/authorized_keys2 # öffnet die Datei authorized_keys2 |
Nun fügt den kopierten Inhalt von puttygen.exe hier rein (einfach Rechtsklick in das Fenster, nicht STRG+V). Speichert es mit STRG+O (es muss nun ‘Wrote 1 line‘ unten angezeigt werden, der Key muss in einer Zeile sein). Schliesst nano nun mit STRG+X. Gebt folgendes ein:
| 1 | chmod 600 ~/.ssh/authorized_keys2 # nimmt die Schreibrechte |
Schliesst nun das Putty Fenster mit eurem privaten Benutzer. Nun öffnet wieder putty.exe und klickt im Reiter Connection auf SSH dann auf AUTH. Unten ist nun eine Eingabezeile, klickt auf Browse uns wählt eure vorher gespeicherte .ppk-Datei. Klickt nun auf Open (vergewissert euch dass ihr die IP auch eingegeben habt). Nun gebt euren Benutzernamen ein (in meinem Fall markus). Es sollte nun dastehen dass der Key benutzt wird. Gebt nun das Passwort für den Key ein (nicht für den Account auf eurem Server). Ihr seid nun eingeloggt. Wechselt zu eurem Fenster in dem noch die Anmeldung für root läuft. Gebt folgendes ein:
| 1 | nano /etc/ssh/sshd_config |
Nun ist die Konifguration für ssh in nano geöffnet. Sucht die Zeile für Port, ändert den Port beliebig, jedoch beachtet dass manche Ports schon benutzt werden. Wählt zB.: 777. Scrollt mit der Pfeiltaste nun nach unten bis zur Zeile PermitRootLogin yes, ändert yes zu no. Nun kann man sich beim System nicht mehr als root anmelden (beim herstellen einer Verbindung). Scroll weiter runter bis #PasswordAuthentication yes, unkommentiert diese Zeile (# entfernen) und macht yes zu no. Nun kann man sich nur noch mit der Key Authentifizierung anmelden. Ändert bei UsePAM den Eintrag auch noch zu no. Abspeichern und folgendes eingeben:
| 1 | /etc/init.d/ssh restart # startet ssh neu und übernimmt die neuen Einstellungen |
Nun öffnen wir pageant.exe und öffnen darin unseren Key, gebt nun das Passwort für euren Key ein. Nun schliesst Putty (lasst das root Fenster aber noch offen falsch was schief läuft und ihr etwas ändern müsst, ansonsten kann es sein dass ihr euch gar nicht mehr anmelden könnt). Öffnet ein neues Putty Fenster und gebt eure IP ein, nun gebt euren gewählten Port ein (den ihr vorhin die Config geschrieben habt). Geht nun wieder auf Connection -> SSH -> Auth und öffnet wieder euren Key. Nun geht auf Connection -> Data und gebt bei Auto-Login username euren privaten Benutzernamen ein (in meinem Fall markus). Speichert nun die Einstellungen (Session Reiter, gebt auch einen Namen für die Einstellung ein). Klickt auf Open und ihr solltet nun automatisch bei eurem System angemeldet werden. Warum? Weil pageant.exe automatisch für den jeweiligen Key das Passwort überträgt (solange pageant.exe läuft). Um nun root zu werden gebt das ein:
Ihr werdet nun nach dem root Passwort gefragt, gebt es ein und ihr seid wieder root.
Man kann sich also nicht mehr direkt als root anmelden und man braucht einen Key zur Anmeldung, nicht nur das Passwort. Somit ist euer System einen kleinen Schritt sicherer. Klar, es ist jetzt nicht die top Lösung. Jedoch als erster Schritt schon mal ein guter Anfang. Bitte zerfleischt mich nun nicht, ich weiß es gibt weitere und evtl. bessere Lösungen. Es gibt jedoch schon genug Flamewars darüber im Internet.
Als weitere Lektüre empfehle ich euch diese Seite.