Ssh Schlüssel Authentifizierung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 5: | Zeile 5: | ||
---> | ---> | ||
{{#drawio:ssh-verbindungsaufbau-4}} | {{#drawio:ssh-verbindungsaufbau-4}} | ||
| + | SSH-VERBINDUNGSAUFBAU (TECHNISCH KORREKT) | ||
| + | ======================================== | ||
| + | |||
| + | |||
| + | CLIENT SERVER | ||
| + | ------ ------ | ||
| + | |||
| + | |||
| + | >>>>>>>>>> 1. TRANSPORT LAYER / KEY EXCHANGE <<<<<<<<<< | ||
| + | |||
| + | (1) Algorithmus-Vorschläge -------------------------------------------> | ||
| + | |||
| + | (2) <------------------------------ Auswahl + Host Key | ||
| + | |||
| + | (3) Host-Key-Verifikation: | ||
| + | - Server-Host-Key steht in known_hosts? | ||
| + | JA → weiter | ||
| + | NEIN → Warnung an Benutzer (hinzufügen oder abbrechen) | ||
| + | |||
| + | |||
| + | (4) Diffie-Hellman Key Exchange --------------------------------------> | ||
| + | |||
| + | (5) <------------------------------ DH-Antwort | ||
| + | |||
| + | (6) Beide berechnen einen gemeinsamen: | ||
| + | → **symmetrischen Session Key** | ||
| + | |||
| + | >>> Ab hier: gesamte SSH-Verbindung symmetrisch verschlüsselt <<< | ||
| + | |||
| + | |||
| + | |||
| + | >>>>>>>>>> 2. USER AUTHENTICATION (PUBLIC KEY) <<<<<<<<<< | ||
| + | |||
| + | |||
| + | (7) Client → Server: | ||
| + | - Benutzername | ||
| + | - "Ich möchte mich mit Public Key authentifizieren." | ||
| + | |||
| + | <------------------------------- (8) | ||
| + | Liegt der Public Key des Clients | ||
| + | in ~/.ssh/authorized_keys ? | ||
| + | |||
| + | NEIN → Authentifizierung abbrechen | ||
| + | JA → weiter | ||
| + | |||
| + | |||
| + | (9) Server → Client: | ||
| + | - Challenge (zufällige Daten) ----------------------------------> | ||
| + | |||
| + | (10) Client: | ||
| + | - Signiert Challenge mit **privatem Schlüssel** | ||
| + | - Sendet Signatur zurück ---------------------------------------> | ||
| + | |||
| + | (11) Server: | ||
| + | - Prüft Signatur mit **öffentlichem Schlüssel** aus authorized_keys | ||
| + | - Gültig? JA → Login erlaubt | ||
| + | NEIN → Zugriff verweigert | ||
| + | |||
| + | |||
| + | >>>>>>>>>> 3. SESSION ACTIVE <<<<<<<<<< | ||
| + | |||
| + | (12) Erfolgreiche Anmeldung: | ||
| + | → Shell / Command-Channel wird geöffnet | ||
| + | → Datenverkehr ist weiterhin symmetrisch verschlüsselt (AES, ChaCha20, ...) | ||
Version vom 15. November 2025, 10:06 Uhr
SSH-VERBINDUNGSAUFBAU (TECHNISCH KORREKT)
========================================
CLIENT SERVER
------
>>>>>>>>>> 1. TRANSPORT LAYER / KEY EXCHANGE <<<<<<<<<<
(1) Algorithmus-Vorschläge ------------------------------------------->
(2) <------------------------------ Auswahl + Host Key
(3) Host-Key-Verifikation:
- Server-Host-Key steht in known_hosts?
JA → weiter
NEIN → Warnung an Benutzer (hinzufügen oder abbrechen)
(4) Diffie-Hellman Key Exchange -------------------------------------->
(5) <------------------------------ DH-Antwort
(6) Beide berechnen einen gemeinsamen:
→ **symmetrischen Session Key**
>>> Ab hier: gesamte SSH-Verbindung symmetrisch verschlüsselt <<<
>>>>>>>>>> 2. USER AUTHENTICATION (PUBLIC KEY) <<<<<<<<<<
(7) Client → Server:
- Benutzername
- "Ich möchte mich mit Public Key authentifizieren."
<------------------------------- (8)
Liegt der Public Key des Clients
in ~/.ssh/authorized_keys ?
NEIN → Authentifizierung abbrechen
JA → weiter
(9) Server → Client:
- Challenge (zufällige Daten) ---------------------------------->
(10) Client:
- Signiert Challenge mit **privatem Schlüssel**
- Sendet Signatur zurück --------------------------------------->
(11) Server:
- Prüft Signatur mit **öffentlichem Schlüssel** aus authorized_keys
- Gültig? JA → Login erlaubt
NEIN → Zugriff verweigert
>>>>>>>>>> 3. SESSION ACTIVE <<<<<<<<<<
(12) Erfolgreiche Anmeldung:
→ Shell / Command-Channel wird geöffnet
→ Datenverkehr ist weiterhin symmetrisch verschlüsselt (AES, ChaCha20, ...)
