SSH-Sicherheit auf VPS

SSH-Zugang so absichern dass Brute-Force nichts bringt — Härtung, fail2ban, Port-Wechsel.

Aktualisiert am 28.10.2026·2 Min. Lesezeit

Der SSH-Port (22) ist das häufigste Ziel automatisierter Brute-Force-Angriffe. Mit ein paar Härtungs-Schritten wird SSH quasi unangreifbar.

1. SSH-Key statt Passwort

Erste und wichtigste Maßnahme: Passwort-Login komplett deaktivieren.

In /etc/ssh/sshd_config:

Text
PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no

Dann systemctl restart ssh. Vorher sicherstellen dass Key-Login funktioniert!

2. Root-Login sperren

Statt direkt als root: normalen User anlegen, per sudo Admin-Aktionen.

Text
PermitRootLogin no

Nutzen Sie usermod -aG sudo benutzername um den User in die sudo-Gruppe zu setzen.

3. SSH-Port ändern

Standard-Port 22 ist Ziel automatisierter Scans. Auf einen anderen Port wechseln reduziert Log-Rauschen drastisch:

Text
Port 22345

Vorher in Firewall den neuen Port freigeben:

Bash
ufw allow 22345/tcp

Nicht: einen bekannten Alternativ-Port wie 2222 nehmen — Scanner suchen die auch ab. Eher was Krummes wie 22345.

4. fail2ban installieren

Sperrt automatisch IPs die zu oft falsche Login-Versuche haben.

Bash
apt install fail2ban

/etc/fail2ban/jail.local:

ini
[sshd]
enabled = true
port = 22345
maxretry = 3
findtime = 600
bantime = 3600

3 Fehlversuche in 10 Minuten → 1 Stunde Sperre.

Bash
systemctl enable --now fail2ban

5. Login-Rate limiten

Auf UFW-Ebene:

Bash
ufw limit 22345/tcp

Max. 6 Verbindungsversuche pro 30 Sekunden pro IP.

6. Nur bestimmte User erlauben

Text
AllowUsers admin backup

Alle anderen User können sich nicht per SSH anmelden — auch wenn ihr Passwort geknackt wird.

7. Client-Side: SSH-Keys mit Passphrase

Ihre eigenen SSH-Keys sollten mit einer Passphrase verschlüsselt sein. Wenn Ihr Laptop geklaut wird und der Angreifer den Key findet — ohne Passphrase kommt er auf Ihren Server.

8. 2FA für SSH (Google Authenticator)

Für maximale Sicherheit: 2FA zusätzlich zu Key-Login:

Bash
apt install libpam-google-authenticator
google-authenticator

In /etc/pam.d/sshd:

Text
auth required pam_google_authenticator.so

In /etc/ssh/sshd_config:

Text
AuthenticationMethods publickey,keyboard-interactive

Dann bei jedem Login: Key + Code aus Google Authenticator.

Prüfen dass alles funktioniert

Neue Session öffnen (nicht die alte schließen!), testen ob Sie reinkommst. Wenn ja: alte Session schließen. Wenn nein: alte Session nutzen um Config zu reparieren.

Log-Analyse

Bash
# Fehlgeschlagene Logins
grep "Failed password" /var/log/auth.log | tail -20

# fail2ban aktuelle Sperren
fail2ban-client status sshd
Hat Ihnen diese Anleitung geholfen?

Passend dazu.

WTS Datenschutz

Ihre Cookie-Einstellungen

Sie entscheiden, welche optionalen Kategorien Sie freigeben. Notwendige Funktionen bleiben immer aktiv.

Notwendig

Immer aktiv

Für grundlegende Funktionen wie Anmeldung, Warenkorb und Sicherheit.

Details

Dazu gehören auch Ihre ausdrücklich gewählte Sprache und Darstellung sowie diese Cookie-Auswahl. Die Auswahl speichern wir für sechs Monate in einem Cookie in diesem Browser.

Komfort

Zusätzliche Funktionen für eine bequemere Nutzung unserer Website.

Details

Ihre aktiv gewählte Sprache und Darstellung bleiben unabhängig von dieser Freigabe gespeichert. Zusätzliche optionale Komfortdienste sind derzeit nicht eingebunden.

Statistik

Hilft uns zu verstehen, wie unsere Website genutzt wird.

Details

Derzeit verwenden wir keine optionalen Statistikdienste. Erst ein eingebundener Dienst könnte Ihre Freigabe für diese Kategorie nutzen.

Marketing

Für personalisierte Inhalte und die Auswertung von Werbung.

Details

Derzeit verwenden wir keine Marketing- oder Werbetracker. Eine Freigabe in dieser Kategorie startet daher keine Werbedienste.

Aktuell sind keine optionalen Dienste eingebunden. Ihre Freigaben werden gespeichert und aktivieren für sich allein keine Dienste.