Die Anmeldung per SSH-Schlüssel gilt heute als eine der sichersten Methoden, um sich auf einem Linux-Server anzumelden. Im Gegensatz zur klassischen Passwortanmeldung müssen keine Passwörter übertragen oder gespeichert werden. Stattdessen erfolgt die Authentifizierung über ein Schlüsselpaar aus privatem und öffentlichem Schlüssel.
Viele Administratoren möchten jedoch nicht vollständig auf die Passwortanmeldung verzichten. Beispielsweise kann es sinnvoll sein, weiterhin einen Login per Benutzername und Passwort als Fallback zu erlauben, falls der private Schlüssel einmal nicht verfügbar ist.
In diesem Beitrag zeigen wir Schritt für Schritt, wie Sie unter Debian 13 einen SSH-Zugang per Public Key einrichten und gleichzeitig die herkömmliche Passwortanmeldung aktiv lassen.
Warum SSH-Schlüssel verwenden?
Die Anmeldung mit SSH-Schlüsseln bietet mehrere Vorteile:
- Höhere Sicherheit gegenüber einfachen Passwörtern
- Schutz vor Brute-Force-Angriffen
- Komfortable Anmeldung ohne Passworteingabe
- Automatisierung von Skripten und Backups möglich
- Unterstützung moderner kryptographischer Verfahren
Der private Schlüssel verbleibt dabei ausschließlich auf dem Client-System, während nur der öffentliche Schlüssel auf dem Server hinterlegt wird.
Voraussetzungen
Für die Einrichtung benötigen Sie:
- Einen Debian-13-Server
- Einen vorhandenen SSH-Zugang per Benutzername und Passwort
- Einen bereits erzeugten Public Key (z. B.
id_ed25519.pub) - Root-Rechte oder sudo-Berechtigungen auf dem Server
Mit welchem Benutzer anmelden?
Ein häufiger Irrtum besteht darin, dass man sich mit dem Benutzer des lokalen Rechners anmelden müsse. Tatsächlich erfolgt die Anmeldung immer mit dem Linux-Benutzerkonto auf dem Server, für das der öffentliche Schlüssel hinterlegt wurde.
Beispiel:
Liegt der Schlüssel in folgendem Verzeichnis:
/home/thorsten/.ssh/authorized_keys
erfolgt die Anmeldung mit:
ssh thorsten@server.example.de
Liegt der Schlüssel dagegen unter:
/home/webadmin/.ssh/authorized_keys
lautet die Anmeldung:
ssh webadmin@server.example.de
Der SSH-Benutzer muss also immer zum Speicherort der Datei authorized_keys passen.
Verzeichnis für SSH-Schlüssel anlegen
Melden Sie sich zunächst wie gewohnt per Passwort auf dem Server an.
Anschließend legen Sie das SSH-Verzeichnis an:
mkdir -p ~/.ssh chmod 700 ~/.ssh
Die Berechtigung 700 stellt sicher, dass nur der jeweilige Benutzer Zugriff auf das Verzeichnis besitzt.
Public Key hinterlegen
Öffnen oder erstellen Sie die Datei authorized_keys:
nano ~/.ssh/authorized_keys
Fügen Sie dort den vollständigen Inhalt Ihres Public Keys ein:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBxxxxxxxxxxxxxxxxxxxxxxxx benutzer@pc
Speichern Sie die Datei anschließend.
Dateiberechtigungen setzen
SSH ist bei den Dateirechten sehr strikt. Sind diese zu großzügig gesetzt, wird die Anmeldung per Schlüssel verweigert.
Setzen Sie daher die korrekten Berechtigungen:
chmod 600 ~/.ssh/authorized_keys
Anschließend sicherstellen, dass der Benutzer Eigentümer der Dateien ist:
chown -R $(whoami):$(whoami) ~/.ssh
SSH-Konfiguration prüfen
Die Konfigurationsdatei des SSH-Servers befindet sich unter:
sudo nano /etc/ssh/sshd_config
Folgende Einstellungen sollten vorhanden sein:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PasswordAuthentication yes UsePAM yes
Besonders wichtig ist:
PasswordAuthentication yes
Dadurch bleibt die Anmeldung per Benutzername und Passwort weiterhin möglich.
Konfiguration testen
Vor einem Neustart des SSH-Dienstes empfiehlt sich eine Syntaxprüfung:
sudo sshd -t
Erscheint keine Fehlermeldung, ist die Konfiguration gültig.
SSH-Dienst neu laden
Anschließend die Konfiguration übernehmen:
sudo systemctl reload ssh
Alternativ:
sudo systemctl restart ssh
Verbindung testen
Nun kann die Anmeldung per Schlüssel getestet werden:
ssh benutzer@server.example.de
Verwendet Ihr Schlüssel einen anderen Dateinamen oder Speicherort:
ssh -i ~/.ssh/mein_schluessel benutzer@server.example.de
Debug-Ausgabe verwenden
Falls die Anmeldung nicht funktioniert, liefert die Debug-Ausgabe hilfreiche Informationen:
ssh -v benutzer@server.example.de
Bei erfolgreicher Schlüsselanmeldung erscheinen Meldungen wie:
Offering public key Server accepts key Authenticated using public key
Zusätzliche Sicherheitsmaßnahmen
Auch wenn die Passwortanmeldung aktiv bleibt, können Sie die Sicherheit weiter erhöhen.
Root-Login deaktivieren
In der SSH-Konfiguration:
PermitRootLogin no
Danach:
sudo systemctl reload ssh
Fail2ban einsetzen
Ein zusätzlicher Schutz gegen Brute-Force-Angriffe ist die Verwendung von Fail2ban. Das Tool erkennt wiederholte Fehlanmeldungen und sperrt die entsprechende IP-Adresse automatisch.
Installation:
sudo apt update sudo apt install fail2ban
Firewall aktivieren
Mit UFW lassen sich unnötige Zugriffe blockieren:
sudo apt install ufw sudo ufw allow 22/tcp sudo ufw enable
Fazit
Die Einrichtung einer SSH-Anmeldung per Public Key unter Debian 13 ist schnell erledigt und erhöht die Sicherheit Ihres Servers erheblich. Gleichzeitig müssen Sie nicht auf die gewohnte Passwortanmeldung verzichten. Durch die Kombination aus SSH-Schlüsseln, Fail2ban, einer Firewall und deaktivierten Root-Logins entsteht ein deutlich robusterer Schutz gegen unbefugte Zugriffe.
Gerade auf produktiven Servern sollte die Nutzung von SSH-Schlüsseln heute zum Standard gehören. Die zusätzliche Möglichkeit der Passwortanmeldung kann dabei als praktische Rückfallebene dienen, ohne den Administrationsaufwand wesentlich zu erhöhen.