Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Authentifizierung zwischen OpenSSH Client und Server

&pagelevel(4)&pagelevel

Client-Authentifizierung

Bei Verwendung des Default-Wertes für die Option PreferredAuthentication in der Client -Konfigurationsdatei ssh_config (siehe Abschnitt „OpenSSH Client konfigurieren“) führt der OpenSSH Client der Reihe nach folgende Authentifizierungsmethoden durch:

  1. hostbased-Authentifizierung

  2. Public Key-Authentifizierung

  3. Passwort-Authentifizierung

Die Verfahren werden der Reihe nach angewendet, bis ein Verfahren erfolgreich authentifiziert hat bzw. bis alle Verfahren gescheitert sind.

Die Public Key-Authentifizierung gestattet die Verwendung von RSA-, DSA-, ECDSA und Ed25519-Algorithmen. Der OpenSSH Client signiert die Session-Id zusammen mit anderen Daten mit seinem privaten Schlüssel ($HOME/.ssh/id_rsa, $HOME/.ssh/id_dsa, $HOME/.ssh/id_ecdsa oder $HOME/.ssh/id_ed25519) und sendet das Ergebnis an den OpenSSH Server. Der Server prüft, ob in der Datei <user home>/.ssh/authorized_keys ein passender öffentlicher Schlüssel enthalten ist. Wenn ja, dann nimmt der Server die Verbindung an. Dabei ist <user home> das Home-Verzeichnis desjenigen Users , mit dessen Kennung sich der ssh-Aufrufer anmelden will.

SSH verwendet u.a folgende Mechanismen, die Vertraulichkeit und Integrität der Verbindung sicherstellen:

  • Vertraulichkeit ist gewährleistet durch Verschlüsselung des Datenverkehrs mithilfe von AES, ChaCha20 oder 3DES.

  • Integrität ist gewährleistet durch Verschlüsselung des Datenverkehrs mit hmac-sha2, hmac-sha1 oder umac.

Server-Authentifizierung

Der OpenSSH-Client ssh authentifiziert den Server, indem er prüft, ob für das jeweilige System ein öffentlicher Schlüssel in der Datei $HOME/.ssh/known_hosts des Benutzers oder in der vom Systemadministrator zentral bereitgestellten Datei /etc/ssh/ssh_known_hosts hinterlegt ist. Falls ja, wird überprüft, ob dieser Schlüssel mit dem vom sshd gesendeten Host-Key gleichen Typs (RSA/DSA/ECDSA/Ed25519) übereinstimmt.

Die Option StrictHostKeyChecking in der Konfigurationsdatei ssh_config steuert das Verhalten des Clients für den Fall, dass in den known_hosts-Dateien kein passender Eintrag gefunden wird:

  • Bei no wird der bislang unbekannte Host-Key ohne Nachfrage in $HOME/.ssh/known_hosts eingetragen, bei ask wird der Benutzer gefragt, ob der Host-Key eingetragen werden soll.

  • Bei yes wird der Host-Key nie vom Client eingetragen, sondern muss vom Anwender bzw. vom Systemadministrator in die jeweilige known_hosts-Datei eingetragen werden.

Eine ausführliche Beschreibung der Option StrictHostKeyChecking finden Sie auf den Man Pages von OpenSSH.