SSH-Server (sshd) konfigurieren und absichern mit Beispielen
09:18, 25.05.2026
Secure Shell (SSH) ist ein Eckpfeiler der Fernverwaltung von Servern. Seine Serverkomponente, sshd, bietet leistungsstarke Konfigurationsoptionen sowohl für Gelegenheitsnutzer als auch für Unternehmensadministratoren. Dieser Leitfaden führt Sie durch die Konfiguration und Absicherung von sshd und enthält praktische Beispiele, die Ihnen helfen, bewährte Verfahren zu verstehen und umzusetzen.
Wie Konfigurationsdateien zusammenwirken
Die primäre Konfigurationsdatei für den SSH-Daemon ist /etc/ssh/sshd_config. Diese Datei legt fest, wie sich der Server verhält, wenn er SSH-Verbindungen akzeptiert.
Im Gegensatz dazu befinden sich die Client-Einstellungen in /etc/ssh/ssh_config oder in der Datei ~/.ssh/config des Benutzers. In sshd_config steuern Administratoren jedoch Authentifizierungsmethoden, Zugriffsregeln und das Sitzungsverhalten.
Wenn der SSH-Daemon startet oder neu geladen wird, liest er sshd_config von oben nach unten. Wenn eine Anweisung wiederholt wird, greift in der Regel die letzte gültige Instanz. Führen Sie nach dem Vornehmen von Änderungen Folgendes aus:
sudo systemctl restart sshd
Oder auf einigen Systemen:
sudo service ssh restart
So testen Sie die Konfiguration vor dem Neustart:
sshd -t
Typische Einstellungen für die private SSH-Nutzung
Wenn Sie einen privaten VPS oder ein Heimlabor verwalten, können Sie die Sicherheit und den Komfort mit ein paar einfachen Anpassungen verbessern:
Port 2222
PermitRootLogin no
PasswordAuthentication no
AllowUsers alice
Diese Einstellungen ändern den Standard-SSH-Port, deaktivieren Root-Anmeldungen, erfordern eine schlüsselbasierte Authentifizierung und beschränken den Zugriff auf bestimmte Benutzer. Sichern Sie immer die Originaldatei, bevor Sie Änderungen vornehmen.
Gängige Anpassungen der SSH-Konfiguration für Unternehmen
In Unternehmensumgebungen muss die SSH-Konfiguration ein Gleichgewicht zwischen Benutzerfreundlichkeit, Compliance und Sicherheit herstellen. Nachfolgend finden Sie wichtige Einstellungen, die Unternehmen häufig in der sshd_config anpassen.
Einstellungen zur Verschlüsselungsrichtlinie
Legen Sie starke, moderne Verschlüsselungsalgorithmen fest, um Daten während der Übertragung zu schützen. Verwenden Sie die Ciphers, MACs und KexAlgorithms -Direktiven:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,ecdh-sha2-nistp521
Diese Einstellungen entfernen veraltete Algorithmen und setzen kryptografische Best Practices durch.
Detaillierte Protokollierung aktivieren
Erhöhen Sie für Audit- und Debugging-Zwecke die Protokollierungsausführlichkeit:
LogLevel VERBOSE
Dies liefert detailliertere Informationen über Benutzeraktivitäten und Authentifizierungsversuche, was für die Sicherheitsüberwachung nützlich ist.
Festlegen des Pfads für AuthorizedKeysFile
Um zu zentralisieren oder anzupassen, wo öffentliche Schlüssel gelesen werden:
AuthorizedKeysFile /etc/ssh/authorized_keys/%u
In diesem Beispiel wird der öffentliche Schlüssel jedes Benutzers in einem gemeinsamen Verzeichnis gespeichert, wobei %u durch den Benutzernamen ersetzt wird.
Steuerung des Root-Zugriffs
Die Root-Anmeldung sollte streng kontrolliert oder vollständig deaktiviert werden:
PermitRootLogin prohibit-password
Dies erlaubt die Root-Anmeldung nur über eine schlüsselbasierte Authentifizierung. Um den Root-Zugriff vollständig zu deaktivieren:
PermitRootLogin no
Anzeigen eines Login-Banners
Um Compliance-Standards zu erfüllen oder einen rechtlichen Hinweis anzuzeigen, konfigurieren Sie ein Login-Banner:
Banner /etc/issue.net
Füllen Sie /etc/issue.net mit der gewünschten Meldung, z. B.:
Unbefugter Zugriff auf dieses System ist verboten.
Alle Aktivitäten werden überwacht und protokolliert.
Verwalten der Port-Forwarding-Einstellungen
Schränken Sie Port-Forwarding je nach internen Richtlinien ein oder aktivieren Sie es:
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Für Benutzer, die sicheres Tunneling benötigen, können diese Funktionen selektiv aktiviert werden.
Verwendung der zertifikatsbasierten Authentifizierung
Für Umgebungen mit einer großen Anzahl von Benutzern bieten SSH-Zertifikate eine skalierbare Zugriffskontrolle. Erstellen Sie einen CA-Schlüssel und signieren Sie die öffentlichen Schlüssel der Benutzer:
ssh-keygen -s ca_key -I user_id user_key.pub
Geben Sie in sshd_config die vertrauenswürdige CA an:
TrustedUserCAKeys /etc/ssh/ca.pub
Dadurch können sich alle von der angegebenen CA signierten Schlüssel authentifizieren, was die Benutzerverwaltung vereinfacht.
Erläuterung der Syntax und Struktur von sshd_config
Die Syntax von sshd_config ist einfach: eine Anweisung pro Zeile, gefolgt von ihrem Wert bzw. ihren Werten. Kommentare beginnen mit #.
# Dies ist ein Kommentar
Port 22
PermitRootLogin no
Bei Direktiven wird die Groß-/Kleinschreibung nicht berücksichtigt, sie sollten jedoch der üblichen Formatierung folgen, um die Lesbarkeit zu gewährleisten. Häufige Fehler sind:
- Abschließende Leerzeichen
- Ungültige Parameterwerte
- Wiederholung widersprüchlicher Anweisungen
So übernehmen Sie Änderungen:
sudo systemctl reload sshd
Oder verwenden Sie sshd -t vor dem Neustart, um sicherzustellen, dass die Syntax gültig ist.