Sicher über SSH auf Debian Server einloggen

Achtung: Diese Seite ist nur noch Teil eines Archivs und wird in Zukunft entfernt.

Falls ihr einen eigenen vServer oder dedizierten Server habt, solltet ihr bei diesem auf die entsprechende Sicherung achten.
Hier zeige ich euch, wie ihr den SSH-Zugang eures Servers am besten sichern könnt. Hier verwenden wir die Private- und Public-Key Authentifizierung.


Was wir benötigen?


Wie gehen wir vor?

Als erstes benötigen wir einen Public- sowie Private-Key. Dafür öffnen wir PuTTYgen.

Hier geben wir dann eine Bitstärke des Keys von 2048 Bits ein. Tragen unten in das Feld also 2048 ein. Hier könnt ihr auch einen längeren Schlüssel wählen, jedoch reichen 2048 in der Regel aus. Dann klickt ihr auf Generate!


Hier müsst ihr dann eure Maus beliebig über das Fenster bewegen, bis der Ladevorgang abgeschlossen ist (Das Programm generiert die Schlüssel aus euren Mausbewegungen).


Nun hat uns PuTTYgen einen Private-Key und aus diesem auch einen Public-Key erstellt. Wenn mehrere Benutzer auf euren Server Zugriff haben sollen, benötigen diese dann jeweils auch einen Key. Um die Keys auf dem Server später ohne Probleme zuordnen zu können, solltet ihr hier noch einen "comment" eingeben, z.B. den Namen. Weiterhin könnt ihr hier den Private-Key optional mit einem Passwort schützen. Sobald ihr das getan habt, müsst ihr den Private-Key mit "Save private key" speichern. Lasst PuTTYgen nun noch offen.

Wenn das erledigt ist, müssen wir den Key noch auf den Server bringen. Hier gehen wir davon aus, dass der Key für den Benutzer "root" ist, der sein home-Verzeichnis demnach unter /root/ hat.
In diesem home-Verzeichnis erstellen wir den Ordner ".ssh" (der Punkt am Anfang ist korrekt und muss so sein ;) ), so dass wir nun die Verzeichnisstruktur /root/.ssh/ haben. In diesem Ordner erstellen wir nun eine Datei mit dem Namen "authorized_keys", in die wir nun den Inhalt aus dem Fenster von PuTTYgen ablegen. Bei mir wäre das folgender:

Quellcode

  1. ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB13vu8QW0iBJk2E91kHJ5FfvIwx5kpwtIVkVA3zxutJczUw6YHIBiHiwm6QYwSwkzxxrOFMrVQj3clKq+kRYlhjuGwc1t99bibJ851O4h0lxi0GAaMF5v7UMJAo4NeACTGHqb3csGtZo39PP46dDFUlmR5xgpoej1L2HD4433g/j9X4b62mOAWWef97zTAVrsmTuMHFCIyenBRsxCPlvMiVv46lpqf6Oq7BSp99+tCsYE5Dr2kAEb+riyCJy79wrnWwzATUbseHU3oWAqK6TMLxrRFWz/affhurXxBqsHlod+iNtcE35jVxDZY0D3DpQdp8rZPV4IkwrvpdOzGER61 patrics key
Diesen aus dem Fenster kopieren und in der Datei einfügen. Dann alles speichern. Bitte beachtet, dass der gesamte Key in einer einzelnen Zeile stehen muss! Die Datei authorized_keys darf nur mit der umask 0077 betrieben werden. Also: Keine Rechte außer für den Besitzer, ansonsten ignoriert OpenSSH die Datei.

Im Regelfall sollte das Ganze nun schon funktionieren, so dass wir es jetzt testen (diesen Schritt unter keinen Umständen auslassen, denn falls es nicht geht, kommt ihr nicht mehr in euer System!).
Dazu öffnet ihr jetzt PuTTY und tragt unter Connection -> SSH -> Auth bei "Private key file for authentication:" den Pfad zu eurem Private-Key ein.
Dann tragt ihr noch unter Connection -> Data unter "Auto-login username" den Benutzernamen (in unserem falle root) ein.

Dann gebt ihr unter Session (ganz oben) wie gewohnt eure Server-Adresse sowie den Port ein. In der Regel ist der Port 22. Um es dann zu vereinfachen solltet ihr diese Daten dann dort als Session speichern, so dass ihr sie beim nächsten mal einfach nur anklicken müsst.
Nun klickt ihr auf Open und PuTTY sollte nun ohne weitere Passwort- (sofern keine passphrase angegeben wurde) und Benutzernamenabfragen auf den Server verbinden. Sollte dies nicht der Fall sein, geht bitte die Schritte oben erneut durch!

Sollte bis hier alles funktioniert haben, müssen wir nun noch die Verbindung nur mit Passwörtern abschalten. Dazu ändern wir in der Datei /etc/ssh/sshd_config folgende Zeilen wie folgt ab (oder fügen sie hinzu):

Quellcode

  1. ...
  2. PasswordAuthentication no
  3. ChallengeResponseAuthentication no
  4. UsePAM yes
  5. ...


Nun müsst ihr den SSH-Server nur noch neu starten, damit er die Änderungen übernimmt. Das machen wir mit:

Quellcode

  1. /etc/init.d/ssh restart

Das war es auch schon. Zum Schluss noch alle Befehle, um die benötigten Änderungen auf dem Server auch via SSH ausführen zu können:

Quellcode

  1. cd /root/ #wechselt in das Verzeichnis /root/
  2. mkdir .ssh #erstellt den Ordner .ssh
  3. touch authorized_keys #legt die Datei für die keys an
  4. echo HIER_KEY_EINSETZEN > authorized_keys #Schreibt den Public-Key in die Datei (bitte den Key einsetzen)
  5. vi /etc/ssh/sshd_config #Öffnet die SSH Config in einem Editor

Bei anderen Linux-Betriebssystemen sollte der Vorgang der selbe sein, jedoch habe ich es nicht getestet!
Über den Autor
Keine Angabe

1.785 mal gelesen

Kommentare 5

  • Black Rider -

    Oder universal für beide Systeme: service ssh restart

  • mechi -

    ergänzend noch für die ubuntu user wäre der ssh restart wie unter debian

    anstatt "/etc/init.d/ssh rstart" unter ubuntu mit "restart ssh"

    Tolle Anleitung ;)

  • Simple -

    Ich würde noch sagen, dass man sich nicht mit root einloggen sollte sondern mit seperaten Usernamen und root gesperrt wird für den Zugriff, weil dann auch noch die Sicherheit besteht, dass der Angreifer erst einmal den Usernamen rausfinden muss. Über den usernamen kann man sich später dann ja wieder die Root Rechte via Sudo holen.

    Grüße
    Simple

  • [FFW] Patric -

    Danke Tim, habe es eben hinzugefügt!

  • TimWolla -

    Als kleine Erweiterung: .ssh/authorized_keys darf nur mit der umask 0077 betrieben werden. Also: Keine Rechte außer für den Besitzer, ansonsten ignoriert OpenSSH die Datei.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen