10
0
Fork 0
16 Dienste/Secure Shell
Dominik Säume edited this page 2025-01-26 19:10:18 +00:00

Secure Shell (SSH)

SSH ist ein Dienst (sshd) und Protokoll, der dazu dient, eine sichere Verbindung zwischen zwei Computern herzustellen. Es wird vor allem verwendet, um sich von einem Computer auf einen anderen, meist auf einen Server, einzuloggen und ihn zu steuern. Die Kommunikation zwischen den Computern wird dabei verschlüsselt, sodass Dritte die übertragenen Daten nicht mitlesen oder verändern können.
Mit SSH kann man nicht nur Befehle ausführen, sondern auch Dateien übertragen (SCP) oder sogar grafische Anwendungen über das Netzwerk ausführen.
SSH wird häufig in der Systemadministration verwendet, um Server aus der Ferne zu verwalten, ohne dass die Sicherheit gefährdet wird.
Ein großer Vorteil von SSH ist, dass es sicherer ist als ältere Protokolle wie Telnet, da es die Daten verschlüsselt und so schützt. Der standard Port für SSH ist 22. Für die Kommunikation setzt SSH auf TCP.

RFCs

Authentizierung

SSH unterstützt Passwort und Schlüsselbasierte authentizierung.
Für den Schlüsselaustausch setzt SSH auf den Diffie-Hellman-Algorithmus.

Authentizierungs Flow

sequenceDiagram
participant C as Lokaler Client
participant S as Externer Server
activate C
C->>S: KEXINIT - Schlüssel Austausch Initialisierung
deactivate C
activate S
S->>C: KEXINIT - Schlüssel Austausch Initialisierung
deactivate S
activate C
C->>S: KEXDH_INIT - Diffie-Hellman Schlüssel Austausch Initialisierung
deactivate C
activate S
S->>C: KEXDH_REPLY - Antwort auf Diffie-Hellman Initialisierung
deactivate S
activate C
C->>S: KEXECDH_REPLY - Ephemeral Diffie-Hellman Antwort
deactivate C
activate S
S->>C: KEXDH_GEX_GROUP - Gruppeninformation für Diffie-Hellman
deactivate S
activate C
C->>S: KEXDH_GEX_INIT - Diffie-Hellman-Parameter Initiierung
deactivate C
activate S
S->>C: KEXDH_GEX_REPLY - Diffie-Hellman Parameter Antwort
deactivate S
activate C
C->>S: USERAUTH_REQUEST - Benutzer Authentifizierungsanforderung
deactivate C
activate S
alt Nicht Erfolgreich
S->>C: USERAUTH_FAILURE - Fehlerantwort für Authentifizierung
else
S->>C: USERAUTH_SUCCESS - Authentifizierung erfolgreich
end
deactivate S
activate C