SSH Server: Unterschied zwischen den Versionen
| Zeile 110: | Zeile 110: | ||
== Erklärung der Standardeinstellungen == | == Erklärung der Standardeinstellungen == | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
{| class="wikitable" | {| class="wikitable" | ||
| − | ! | + | ! Option !! Wert !! Erklärung |
|- | |- | ||
| − | | <code> | + | | <code>Include</code> |
| + | | <code>/etc/ssh/sshd_config.d/*.conf</code> | ||
| + | | Bindet alle <code>.conf</code>-Dateien aus dem Verzeichnis <code>/etc/ssh/sshd_config.d/</code> ein. Ermöglicht modulare Konfiguration. '''Hinweis:''' <code>Include</code> steht ganz am Anfang, da Drop-in-Dateien Werte aus <code>sshd_config</code> überschreiben können. | ||
|- | |- | ||
| − | | <code>LC_*</code | + | | <code>KbdInteractiveAuthentication</code> |
| − | + | | <code>no</code> | |
| − | + | | Deaktiviert die tastaturbasierte interaktive Authentifizierung (früher <code>ChallengeResponseAuthentication</code>). Betrifft z. B. Einmalpasswörter (OTP) oder PAM-Abfragen mit Benutzerinteraktion. | |
| + | |- | ||
| + | | <code>UsePAM</code> | ||
| + | | <code>yes</code> | ||
| + | | Aktiviert PAM (Pluggable Authentication Modules) – das zentrale Authentifizierungssystem unter Linux. Übernimmt Passwortprüfung, Sitzungsverwaltung und Zugriffskontrolle. Bleibt auch bei deaktiviertem Passwort-Login aktiv. | ||
| + | |- | ||
| + | | <code>X11Forwarding</code> | ||
| + | | <code>yes</code> | ||
| + | | Erlaubt die Weiterleitung grafischer Anwendungen über SSH (<code>ssh -X</code>). Auf reinen Produktionsservern empfiehlt sich <code>no</code>, da es ein potenzielles Sicherheitsrisiko darstellt. | ||
| + | |- | ||
| + | | <code>PrintMotd</code> | ||
| + | | <code>no</code> | ||
| + | | Deaktiviert die Ausgabe der Message of the Day (<code>/etc/motd</code>) durch den SSH-Daemon. Die Ausgabe übernimmt stattdessen PAM, um doppelte Ausgaben zu vermeiden. | ||
| + | |- | ||
| + | | <code>AcceptEnv</code> | ||
| + | | <code>LANG LC_* COLORTERM NO_COLOR</code> | ||
| + | | Erlaubt dem Client, Umgebungsvariablen zu übertragen: Sprache (<code>LANG</code>), Locale-Einstellungen (<code>LC_*</code>), Terminal-Farbunterstützung (<code>COLORTERM</code>) und Farb-Deaktivierung (<code>NO_COLOR</code>). | ||
| + | |- | ||
| + | | <code>Subsystem sftp</code> | ||
| + | | <code>/usr/lib/openssh/sftp-server</code> | ||
| + | | Aktiviert das SFTP-Subsystem und gibt den Pfad zum SFTP-Server-Programm an. Ohne diese Zeile sind keine SFTP-Verbindungen möglich. | ||
| + | |} | ||
== Siehe auch == | == Siehe auch == | ||
Version vom 11. April 2026, 16:55 Uhr
SSH-Server
Der SSH-Server ermöglicht es, eingehende SSH-Verbindungen entgegenzunehmen. Unter Debian/Ubuntu läuft er als Systemdienst und wird über systemctl verwaltet.
Pakete
- SSH besteht aus dem Metapaket
ssh
- Dieses beinhaltet die Pakete
openssh-client– der SSH-Client (für ausgehende Verbindungen)openssh-server– der SSH-Daemon (für eingehende Verbindungen)openssh-sftp-server– SFTP-Subsystem für Dateiübertragungen
Installation:
apt install ssh
Dienstverwaltung
Der SSH-Server läuft als Systemdienst und wird über systemctl verwaltet.
Für Logs wird journalctl verwendet.
Starten / Stoppen
Dienst starten
systemctl start ssh
Dienst stoppen
systemctl stop ssh
Dienst neu starten (z. B. nach Konfigurationsänderung)
systemctl restart ssh
Autostart beim Systemstart
SSH automatisch beim Booten starten
systemctl enable ssh
Autostart deaktivieren
systemctl disable ssh
Status prüfen
systemctl status ssh
Zeigt ob der Dienst läuft, seit wann, die PID und die letzten Logzeilen.
Logs verfolgen
journalctl -fu ssh
-f– folgt dem Log in Echtzeit (wietail -f)-u ssh– filtert nur auf den SSH-Dienst
Nützlich zum Debuggen von fehlgeschlagenen Verbindungsversuchen oder Konfigurationsfehlern.
Nur die letzten 50 Zeilen anzeigen:
journalctl -u ssh -n 50
Logs eines bestimmten Zeitraums:
journalctl -u ssh --since "2025-04-01 00:00" --until "2025-04-01 23:59"
Konfigurationsverzeichnis
ls /etc/ssh
moduli sshd_config.d ssh_host_ed25519_key.pub ssh_config ssh_host_ecdsa_key ssh_host_rsa_key ssh_config.d ssh_host_ecdsa_key.pub ssh_host_rsa_key.pub sshd_config ssh_host_ed25519_key
| Datei/Verzeichnis | Bedeutung |
|---|---|
sshd_config |
Hauptkonfiguration des SSH-Servers |
sshd_config.d/ |
Optionale Drop-in-Konfigurationen (werden von sshd_config eingelesen) |
ssh_config |
Systemweite Client-Konfiguration (gilt für alle Nutzer) |
ssh_config.d/ |
Drop-ins für die systemweite Client-Konfiguration |
moduli |
Parameter für den Diffie-Hellman-Schlüsselaustausch |
ssh_host_*_key |
Private Host Keys des Servers (niemals weitergeben) |
ssh_host_*_key.pub |
Öffentliche Host Keys (werden dem Client beim Verbindungsaufbau gezeigt) |
Die Hauptkonfigurationsdatei
Die Hauptkonfigurationsdatei des SSH-Servers ist /etc/ssh/sshd_config.
Sie enthält viele auskommentierte Standardwerte. Um einen besseren Überblick zu bekommen,
empfiehlt es sich, zuerst ein Backup anzulegen und dann eine bereinigte Version zu erstellen.
Backup der Originaldatei anlegen:
cp sshd_config sshd_config.org
Nur aktive (nicht auskommentierte) Zeilen in die Konfigurationsdatei schreiben:
grep "^[^#]" sshd_config.org > sshd_config
Ergebnis anzeigen:
cat sshd_config
Die Standardkonfiguration unter Debian/Ubuntu enthält dann folgende aktive Einstellungen:
Include /etc/ssh/sshd_config.d/*.conf KbdInteractiveAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC_* COLORTERM NO_COLOR Subsystem sftp /usr/lib/openssh/sftp-server
Erklärung der Standardeinstellungen
| Option | Wert | Erklärung |
|---|---|---|
Include
|
/etc/ssh/sshd_config.d/*.conf
|
Bindet alle .conf-Dateien aus dem Verzeichnis /etc/ssh/sshd_config.d/ ein. Ermöglicht modulare Konfiguration. Hinweis: Include steht ganz am Anfang, da Drop-in-Dateien Werte aus sshd_config überschreiben können.
|
KbdInteractiveAuthentication
|
no
|
Deaktiviert die tastaturbasierte interaktive Authentifizierung (früher ChallengeResponseAuthentication). Betrifft z. B. Einmalpasswörter (OTP) oder PAM-Abfragen mit Benutzerinteraktion.
|
UsePAM
|
yes
|
Aktiviert PAM (Pluggable Authentication Modules) – das zentrale Authentifizierungssystem unter Linux. Übernimmt Passwortprüfung, Sitzungsverwaltung und Zugriffskontrolle. Bleibt auch bei deaktiviertem Passwort-Login aktiv. |
X11Forwarding
|
yes
|
Erlaubt die Weiterleitung grafischer Anwendungen über SSH (ssh -X). Auf reinen Produktionsservern empfiehlt sich no, da es ein potenzielles Sicherheitsrisiko darstellt.
|
PrintMotd
|
no
|
Deaktiviert die Ausgabe der Message of the Day (/etc/motd) durch den SSH-Daemon. Die Ausgabe übernimmt stattdessen PAM, um doppelte Ausgaben zu vermeiden.
|
AcceptEnv
|
LANG LC_* COLORTERM NO_COLOR
|
Erlaubt dem Client, Umgebungsvariablen zu übertragen: Sprache (LANG), Locale-Einstellungen (LC_*), Terminal-Farbunterstützung (COLORTERM) und Farb-Deaktivierung (NO_COLOR).
|
Subsystem sftp
|
/usr/lib/openssh/sftp-server
|
Aktiviert das SFTP-Subsystem und gibt den Pfad zum SFTP-Server-Programm an. Ohne diese Zeile sind keine SFTP-Verbindungen möglich. |
Siehe auch
- SSH-Verbindungsaufbau – Wie eine SSH-Verbindung aufgebaut wird
- SSH-Config – Client-seitige Konfiguration (~/.ssh/config)
- sshd_config – Serverkonfiguration im Detail