Blog
Login via Public / Private Key auf Linux Server
Worum geht es
Der Login mit Benutzername und Passwort ist anfällig für Brute-Force-Angriffe und gehört zu den häufigsten Einfallstoren auf Linux-Servern, die im Internet erreichbar sind. Sicherer und im Alltag bequemer ist die Anmeldung mit einem Schlüsselpaar (Public/Private Key): Der öffentliche Schlüssel liegt auf dem Server, der private Schlüssel bleibt auf deinem Rechner.
Diese Anleitung führt durch die komplette Einrichtung — vom Anlegen des Benutzers bis zur abgesicherten sshd_config.
Voraussetzungen
- Linux-Server (Debian/Ubuntu) mit Root- oder sudo-Zugang
- Lokaler Rechner mit OpenSSH-Client
- Ein SSH-Schlüsselpaar (siehe Vorbereitung unten, falls noch keines vorhanden)
Vorbereitung — SSH-Schlüsselpaar erzeugen
Nur ausführen, falls auf dem lokalen Rechner noch kein Schlüsselpaar existiert:
ssh-keygen -t ed25519 -C "deine-email@example.com"
Die Schlüssel liegen anschließend in ~/.ssh/id_ed25519 (privat) und ~/.ssh/id_ed25519.pub (öffentlich).
Schritt 1 — Benutzer auf dem Server anlegen
Auf dem Server als root ausführen:
apt update && apt install sudo adduser <username> usermod -aG sudo <username>
Damit existiert ein nicht-privilegierter Benutzer, der bei Bedarf per sudo Administrator-Rechte erhält.
Schritt 2 — Public Key auf den Server kopieren
Vom lokalen Rechner aus:
ssh-copy-id -i ~/.ssh/id_ed25519.pub <username>@SERVER-IP
ssh-copy-id hängt den öffentlichen Schlüssel auf dem Server an die Datei ~/.ssh/authorized_keys an — mit den korrekten Berechtigungen.
Schritt 3 — Key-Login testen
Vom lokalen Rechner einloggen. Ohne Passwort-Eingabe sollte es funktionieren:
ssh <username>@SERVER-IP
Wird trotzdem ein Passwort verlangt, hilft die explizite Angabe des Schlüssels:
ssh -i ~/.ssh/id_ed25519 <username>@SERVER-IP
Klappt es auch dann nicht, sind meist die Datei-Rechte auf dem Server zu offen:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
Schritt 4 — SSH-Server härten
Konfiguration öffnen:
sudo nano /etc/ssh/sshd_config
Folgende Werte setzen oder ändern (eventuelle Doppeleinträge entfernen):
PermitRootLogin no PubkeyAuthentication yes PasswordAuthentication no
Konfiguration übernehmen:
sudo systemctl restart sshd
Ergebnis
Ab sofort sind nur noch Logins mit gültigem Schlüssel möglich. Passwort-basierte Anmeldungen und Root-Logins über SSH sind deaktiviert — ein deutlicher Gewinn an Sicherheit ohne Komfort-Einbußen.