Sie verwechseln die Authentifizierung des Servercomputers mit dem Clientcomputer und die Authentifizierung des Benutzers mit dem Servercomputer.
Serverauthentifizierung
Eines der ersten Dinge, die beim Aufbau der SSH-Verbindung passieren, ist, dass der Server seinen öffentlichen Schlüssel an den Client sendet und dem Client (dank Public-Key-Kryptografie ) nachweist, dass er den zugehörigen privaten Schlüssel kennt. Dies authentifiziert den Server: Wenn dieser Teil des Protokolls erfolgreich ist, weiß der Client, dass der Server so ist, wie er es vorgibt.
Der Client überprüft möglicherweise, ob es sich um einen bekannten Server handelt, und nicht um einen Schurken-Server, der versucht, sich als der richtige auszugeben. SSH bietet nur einen einfachen Mechanismus zur Überprüfung der Legitimität des Servers: Es merkt sich die Server, mit denen Sie bereits verbunden sind, in der ~/.ssh/known_hosts
Datei auf dem Client-Computer (es gibt auch eine systemweite Datei /etc/ssh/known_hosts
). Wenn Sie zum ersten Mal eine Verbindung zu einem Server herstellen, müssen Sie auf andere Weise überprüfen, ob der vom Server angegebene öffentliche Schlüssel wirklich der öffentliche Schlüssel des Servers ist, zu dem Sie eine Verbindung herstellen möchten. Wenn Sie den öffentlichen Schlüssel des Servers haben, zu dem Sie eine Verbindung herstellen möchten, können Sie ihn ~/.ssh/known_hosts
manuell auf dem Client hinzufügen .
Die Authentifizierung des Servers muss erfolgen, bevor Sie vertrauliche Daten an den Server senden. Insbesondere wenn die Benutzerauthentifizierung ein Kennwort enthält, darf das Kennwort nicht an einen nicht authentifizierten Server gesendet werden.
Benutzerauthentifizierung
Der Server lässt einen Remote-Benutzer nur dann anmelden, wenn dieser Benutzer nachweisen kann, dass er das Recht hat, auf dieses Konto zuzugreifen. Abhängig von der Serverkonfiguration und der Auswahl des Benutzers kann der Benutzer eine von mehreren Arten von Anmeldeinformationen vorlegen (die folgende Liste erhebt keinen Anspruch auf Vollständigkeit).
- Der Benutzer kann das Kennwort für das Konto angeben, bei dem er sich anmelden möchte. Der Server überprüft dann, ob das Kennwort korrekt ist.
- Der Benutzer kann einen öffentlichen Schlüssel vorlegen und nachweisen, dass er den mit diesem öffentlichen Schlüssel verbundenen privaten Schlüssel besitzt. Dies ist genau die gleiche Methode, die zur Authentifizierung des Servers verwendet wird. Jetzt versucht der Benutzer, seine Identität zu bestätigen, und der Server überprüft sie. Der Anmeldeversuch wird akzeptiert, wenn der Benutzer nachweist, dass er den privaten Schlüssel kennt und der öffentliche Schlüssel in der Berechtigungsliste des Kontos (
~/.ssh/authorized_keys
auf dem Server) enthalten ist.
- Eine andere Art von Verfahren umfasst das Delegieren eines Teils der Arbeit zum Authentifizieren des Benutzers an den Client-Computer. Dies geschieht in kontrollierten Umgebungen wie Unternehmen, in denen sich viele Computer dieselben Konten teilen. Der Server authentifiziert den Client-Computer mit dem gleichen Mechanismus, der umgekehrt verwendet wird, und verlässt sich dann auf den Client, um den Benutzer zu authentifizieren.