In diesem Artikel möchte ich euch zeigen wie man seinen SSH härten bzw. absichern kann. Man kann es auf jeder Linux Distribution anwenden, sowie für Proxmox, LXC-Container und vieles mehr.
Sicheres Passwort verwenden
Viele Nutzer verwenden noch ein einfaches Passwort wie das Geburtsdatum, Geburtsort oder den Namen vom Haustier. Das ist ein großer Fehler, den mittels einer Brute-Force-Attacke kann man leicht das Passwort knacken.
Verwenden daher ein Passwort mit folgenden Parametern.
- Benutzt klein und Großbuchstaben.
- Verwendet einen oder mehrere Sonderzeichen.
- Setzt einen oder mehrere Zahlen.
Sicher stellt sich der eine oder andere die Frage „wie soll man sich das Passwort merken?“
Hier ein kleiner Tipp wie man Passwörter gut merken kann.
Wir nehmen die Namen und das Alter unserer Familie, als Beispiel.
- Jens (Sohn – 5 Jahre)
- Katrin (Tochter – 7 Jahre)
- Klaus (Vater – 37 – Jahre)
- Anne (Mutter – 34 – Jahre)
Nun nehmen wir die ersten beiden Buchstaben und setzten dahinter das Alter und ein beliebiges Sonderzeichen.
In unserem Beispiel würde das wie folgt aussehen: Je5+Ka7+Kl37+An34
Und schon hat man ein sicheres und einfach zu merkendes Passwort.
Tipp: Wer testen möchte wie sicher sein Passwort ist, kann das hier machen. https://password.kaspersky.com/de/
Das Passwort unter Linux ändert man mit passwd
SSH-Zugang Port ändern
Den Standard SSH Port kennt wahrscheinlich jeder, es ist der Port 22. Das wissen natürlich auch die Kriminellen bzw. Hacker, die auf der Suche nach undichten Systemen sind. Die meisten werden ihre Angriffsversuche – meist automatisierte Log-in-Versuche – vor allem über diesen Port laufen lassen, daher ist es wichtig den Standard Port zu ändern.
Was auf Port 22 läuft, kann man mit folgendem Befehl überprüfen:
netstat -tulpen | grep ":22"
Die Ausgabe sollte ungefähr so aussehen.
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 245047597 460/sshd
Nun ändern wir den SSH Port wie folgt:
sudo nano /etc/ssh/sshd_config
Nun müssen wir nur die Raute (#) vor dem Port entfernen und unsere beliebige Port Nummer eintragen.

Nachdem wir die Änderungen STRG-O und STRG-X gespeichert und verlassen haben müssen wir den SSH Service Neustarten. Das machen wir mit diesem Befehl:
sudo service ssh restart
Achtung: auf Wikipedia gibt es eine Liste mit standardisierten Ports. Achtet darauf das ihr keine davon als SSH Port verwendet.
Jetzt können wir testen, ob wir uns mit dem neuen Port per SSH einloggen können.
Root deaktivieren
Um den SSH-Zugang abzusichern ist es empfehlenswert das Root-Konto für SSH zu deaktivieren. Zuerst sollte man aber ein neues Benutzer-Konto erstellen.
Das machen wir mit folgendem Befehl:
(Name und Verzeichnis vorher nach Belieben ändern)
useradd -g users -d /home/alex -m -s /bin/bash alex
Jetzt müssen wir für den neu angelegten Benutzer (alex) noch ein passwort vergeben. Das machen wir wie folgt:
passwd alex
Nun muss der SSH Dienst neugestartet werden, das geht mit diesem Befehl:
service ssh restart
Jetzt kann man sich mit dem neuen Port und den neuen Benutzer einloggen.
Nach dem Einloggen kann man mit dem Befehl su
zum Root wechseln.
Achtung: Erst wenn das klappt, geht es weiter, ansonsten könnten wir uns aussperren.
Als Root geben wir folgenden Befehl:
nano /etc/ssh/sshd_config
Im Editor suchen wir nach
PermitRootLogin yes
und ändern es auf
PermitRootLogin no
Zusätzlich fügen wir gang oben folgendes ein:
# Nur noch den user alex zulassen.
AllowUsers alex
# root oder benutzer in der Gruppe root generell sperren
DenyUsers root
DenyGroups root
Damit erlauben wir den SSH Zugang nur den Benutzer „alex“ und verbieten das Einloggen von Root. Wir speichern das ganze und verlassen den Editor.
Tipp: solltest du weiteren Benutzern den Zugang gewähren, so musst du nach dem AllowUsers alex
einfach die weiteren Benutzer eintragen. Als Beispiel AllowUsers alex mike frank
.
Achtung: niemals ein Komma nach dem Benutzer setzen, das könnte zu Aussperrung führen.
Und wieder muss der SSH Service neugestartet werden.
service ssh restart
Nun versuchen wir uns, als Root anzumelden. Es sollte die Fehlermeldung Access denied
kommen.
RSA-Key erstellen
Mit dem sogenannten RSA-Keys kann man den SSH-Zugang noch weiter härten. Ohne den Key kann man sich nicht einloggen, daher sollte man sein RSA-Key gut aufbewahren.
Als Erstes laden wir uns puttygen.exe
runter.

Nachdem wir das geöffnet haben, stellen wir sicher das RSA
gesetzt ist (Punkt 1). Nun setzten wir die bits auf 4096
hoch (Punkt 2.) und bestätigen das ganze, indem wir auf den Button Generate
klicken (Punkt 3.).
Wir bewegen die Maus im leeren Bereich unterhalb des Ladebalkens, um ein public-key zu generieren. Nachdem es generiert wurde, erscheint unser public-key (Punkt 4.). Jetzt setzten wir noch ein sicheres Passwort um uns später zu Identifizieren (Punkt 5.) und speichern schließlich das ganze, indem wir auf den Button Save private key
klicken (Punkt 6.).
Achtung: Ihr solltet den private-key auf einem sicheren Platz aufbewahren, den brauchen wir um uns später einzuloggen.
Tipp: Optional könnt ihr auch den public-key sichern, indem ihr auf den Button Save public key
klickt, aber ist nicht notwendig da wir den public-key auf unserer Linux Distribution speichern werden, dazu gleich mehr.
Wir lassen puttygen.exe
offen und loggen uns erneut mit putty ein. Wir verwenden nach wie vor unseren erstellen Benutzer alex und den Port den wir vorher ausgewählt haben.
Nachdem wir uns eingeloggt haben wechseln wir in das Homeverzeichnis.
cd /home/alex
Und erstellen einen versteckten Ordner.
mkdir .ssh
Wir passen die Berechtigungen an mit diesen Befehlen
chown alex:users .ssh
chmod 700 .ssh
Nun öffnen wir den soeben erstellen Ordner und erstellen eine Datei mit den Namen authorized_keys
cd /home/alex/.ssh
touch authorized_keys
chown alex authorized_keys
chgrp users authorized_keys
chmod 600 authorized_keys
Jetzt öffnen wir die soeben erstellte Datei mit diesem Befehl
nano authorized_keys
Jetzt wechseln wir zurück zum puttygen.exe und kopieren uns den public-key (Punkt 4.)
Achtung: Es muss alles kopiert werden, von oben bis unten.
Nun wechseln wir wieder zurück zu putty und fügen es in der zuvor geöffneten Datei ein. Wir speichern und schließen es wieder.
Wir öffnen ein neues putty und klicken im linken Kategorie-Bereich auf SSH
dann auf Auth
und schließlich auf Browse...
. Nun wählen wir unsere zuvor gespeicherte privat-key
(Punkt 6.)
Tipp: Es ist empfehlenswert die Session zu speichern. Dazu wählt man im linken Kategorie-Bereich Session
, unter Saved Sessions
vergibt einen beliebigen Namen und klickt auf Save
.
Nachdem wir uns nun erneut anmelden fragt uns putty nach der Passphrase die wir unter Punkt 5. eingegeben haben. Nach erfolgreicher eingabe sind wir mit dem Benutzer alex verbunden.

Nachdem wir uns erfolgreich eingeloggt haben, wechseln wir mit su
auf Root und geben folgendes ein.
nano /etc/ssh/sshd_config
Wir ersetzen PasswordAuthentication yes
in PasswordAuthentication no
und starten den SSH Dienst neu mit
service ssh restart
Das war`s. Nun haben wir unseren SSH-Zugang etwas sicherer gemacht.
Habt ihr noch weitere Ideen und Tipps wie man den SSH-Zugang sicherer machen kann? Schreibt es in den Kommentaren oder schreibt mir über das Kontaktformular.
Ich freue mich auf eure Kommentare. Bleibt Gesund.