Ssh Schlüssel Authentifizierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
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, ...)