So sichern Sie Ihren VPS (SSH-Schlüssel, neuer Benutzer, Firewall)

Geschätzte Lektüre: 4 Minuten

Ein frisch bereitgestellter VPS (siehe Erste Schritte mit Ihrem VeerHost-VPS) mit Root-Login und Passwort gehört zu den am häufigsten angegriffenen Zielen im Internet. Innerhalb weniger Minuten nach dem Livegang beginnen Bots mit Brute-Force-Anmeldungen. Diese Anleitung zeigt, wie Sie Ihren VeerHost-VPS auf Ubuntu 22.04, Ubuntu 24.04 oder Debian richtig absichern.

Schritt 1: Einen neuen Sudo-Benutzer erstellen

Alles als Root auszuführen ist gefährlich. Ein Fehler kann Ihren Server zerstören — es lohnt sich, vorher einen Snapshot-Backup zu erstellen. Erstellen Sie einen normalen Benutzer mit sudo-Rechten:

adduser deploy

Folgen Sie den Eingaben, um ein Passwort festzulegen. Fügen Sie den Benutzer anschließend zur sudo-Gruppe hinzu:

usermod -aG sudo deploy

Testen Sie, ob sudo funktioniert, indem Sie zum neuen Benutzer wechseln:

su - deploy
sudo whoami

Die Ausgabe sollte root sein. Lassen Sie dieses Terminal geöffnet – melden Sie sich nicht ab, bevor die SSH-Schlüsselanmeldung bestätigt ist.

Schritt 2: Ein SSH-Schlüsselpaar erzeugen (auf Ihrem lokalen Rechner)

SSH-Schlüssel sind deutlich sicherer als Passwörter. Führen Sie dies auf Ihrem eigenen Computer aus (nicht auf dem Server):

ssh-keygen -t ed25519 -C "[email protected]"

Drücken Sie Enter, um den Standardpfad (~/.ssh/id_ed25519) zu übernehmen. Optional können Sie eine Passphrase hinzufügen. Dadurch werden zwei Dateien erstellt:

  • ~/.ssh/id_ed25519 – Ihr privater Schlüssel (niemals teilen)
  • ~/.ssh/id_ed25519.pub – Ihr öffentlicher Schlüssel (dieser kommt auf den Server)

Schritt 3: Den öffentlichen Schlüssel auf den Server kopieren

Von Ihrem lokalen Rechner aus:

ssh-copy-id deploy@YOUR_VPS_IP

Falls ssh-copy-id nicht verfügbar ist (z. B. unter Windows), kopieren Sie den öffentlichen Schlüssel manuell. Führen Sie auf dem Server aus:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Fügen Sie den Inhalt Ihrer Datei id_ed25519.pub ein, speichern Sie und beenden Sie den Editor (Ctrl+X, dann Y, dann Enter). Setzen Sie dann die Berechtigungen:

chmod 600 ~/.ssh/authorized_keys

Testen Sie die SSH-Schlüsselanmeldung in einem neuen Terminal (das aktuelle noch nicht schließen):

ssh deploy@YOUR_VPS_IP

Wenn Sie sich ohne Passwort anmelden können, funktionieren die SSH-Schlüssel korrekt.

Schritt 4: Root-SSH-Login und Passwortauthentifizierung deaktivieren

Härten Sie nun die SSH-Konfiguration. Bearbeiten Sie auf dem Server die SSH-Config-Datei:

nano /etc/ssh/sshd_config

Ändern oder ergänzen Sie diese Zeilen:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Speichern Sie die Datei und laden Sie SSH neu (nicht neu starten – ein Reload hält Ihre aktuelle Sitzung aktiv):

systemctl reload sshd

Testen Sie, dass Root-Login blockiert ist, indem Sie in einem neuen Terminal Folgendes versuchen:

ssh root@YOUR_VPS_IP

Es sollte Permission denied (publickey) anzeigen. Wenn das der Fall ist, sind Sie abgesichert. Falls Sie sich aussperren, siehe Fehler beheben: SSH-Verbindung abgelehnt / Zeitüberschreitung auf Ihrem VPS.

Schritt 5: Den Standard-SSH-Port ändern (optional, aber empfohlen)

Port 22 wird ständig von Bots gescannt. Eine Änderung auf einen benutzerdefinierten Port (z. B. 2299) reduziert das Log-Rauschen deutlich:

nano /etc/ssh/sshd_config

Finden Sie #Port 22 und ändern Sie es zu:

Port 2299

Nach dem Speichern erlauben Sie den neuen Port zuerst in der Firewall (siehe Schritt 6) und laden Sie SSH dann neu:

systemctl reload sshd

Zum Verbinden mit benutzerdefiniertem Port: ssh -p 2299 deploy@YOUR_VPS_IP

Schritt 6: UFW-Firewall einrichten

UFW (Uncomplicated Firewall) ist das einfachste Firewall-Tool auf Ubuntu/Debian. Installieren und konfigurieren Sie es:

apt install -y ufw

Setzen Sie Standardregeln (alles eingehende blockieren, alles ausgehende erlauben):

ufw default deny incoming
ufw default allow outgoing

SSH erlauben (Port 22 oder Ihren eigenen Port verwenden):

# Wenn Sie Port 22 beibehalten:
ufw allow 22/tcp

# Wenn Sie SSH auf Port 2299 geändert haben:
ufw allow 2299/tcp

HTTP und HTTPS für Websites erlauben:

ufw allow 80/tcp
ufw allow 443/tcp

Aktivieren Sie die Firewall:

ufw enable

Status prüfen:

ufw status verbose

Schritt 7: Fail2Ban installieren (Schutz vor Brute-Force-Angriffen)

Fail2Ban sperrt automatisch IPs, die wiederholt fehlgeschlagene SSH-Anmeldungen versuchen:

apt install -y fail2ban

Erstellen Sie eine lokale Konfiguration (nie die Standarddatei jail.conf direkt bearbeiten):

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
systemctl enable fail2ban
systemctl start fail2ban

Prüfen Sie, ob das SSH-Jail aktiv ist:

fail2ban-client status sshd

Sicherheits-Checkliste

  • ✅ Neuer Sudo-Benutzer erstellt (nicht täglich Root verwenden)
  • ✅ SSH-Schlüssel-Authentifizierung aktiviert
  • ✅ Root-SSH-Login deaktiviert
  • ✅ Passwortauthentifizierung deaktiviert
  • ✅ UFW-Firewall mit minimalen offenen Ports aktiviert
  • ✅ Fail2Ban läuft
  • Limited-Time Offer

WordPress Hosting — Just $1/month for 12 months

Only 13 spots left

Get WordPress-ready hosting with free SSL, fast NVMe storage, malware protection, and 24/7 expert support—everything you need to launch and keep your website running smoothly.

12-month term • New customers only • Limited availability

Launchpad