Authetifizierungsarten am Beispiel ssh gegen lokale Dateien

Aus Xinux Wiki
Version vom 8. Oktober 2024, 15:41 Uhr von Thomas.will (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „;Verbindungsaufbau *Der Client baut eine SSH-Verbindung zum Server auf und startet die Authentifizierung. ;Austausch von Schlüsseln *Der Server sendet seinen…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen
Verbindungsaufbau
  • Der Client baut eine SSH-Verbindung zum Server auf und startet die Authentifizierung.
Austausch von Schlüsseln
  • Der Server sendet seinen öffentlichen Host-Schlüssel, damit der Client die Identität des Servers verifizieren kann.
Übertragung des Benutzernamens
  • Der Client übermittelt den Benutzernamen, unter dem er sich lokal anmelden möchte.
Prüfung der Authentifizierungsquelle in /etc/nsswitch.conf
  • Der Server überprüft anhand der Datei /etc/nsswitch.conf, wo er die Benutzerdaten suchen soll (z. B. in `files`).
  • Typischerweise wird die Benutzerinformation in `/etc/passwd` und die Passwortinformation in `/etc/shadow` gesucht.
Passwort-Abfrage
  • Der Server fordert das Passwort des Benutzers an, das lokal in der Datei /etc/shadow gespeichert ist.
Verifizierung durch PAM
  • Die Passwortverifizierung erfolgt durch das PAM-Subsystem (Pluggable Authentication Modules), das auf lokale Dateien wie `/etc/shadow` zugreift.
  • PAM verwendet lokale Authentifizierungsmodule, um das eingegebene Passwort mit dem gespeicherten Hash zu vergleichen.
Entscheidung
  • Erfolgreiche Authentifizierung:
    • Wenn das Passwort korrekt ist, wird der Zugriff gewährt und eine SSH-Sitzung eingerichtet.
  • Fehlgeschlagene Authentifizierung:
    • Bei falschem Passwort wird der Zugriff verweigert.
Session-Erstellung
  • Nach erfolgreicher Authentifizierung wird eine SSH-Session eröffnet, und der Benutzer kann auf den Server zugreifen.
Protokollierung
  • Der gesamte Authentifizierungsvorgang wird über journal protokolliert und kann über journalctl eingesehen werden.