Linux Administration

SSH-Zugang mit Public Key unter Debian 13 einrichten – Passwort-Login weiterhin erlauben

SSH-Schlüssel erhöhen die Sicherheit Ihres Debian-Servers erheblich. In dieser Anleitung erfahren Sie, wie Sie Public-Key-Authentifizierung einrichten und gleichzeitig die klassische Passwortanmeldung beibehalten.

3 min Lesezeit
Grafik: SSH-Zugang mit Public Key unter Debian 13 einrichten

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.