it-swarm.com.de

Wie funktioniert SFTP ohne ein manuell generiertes öffentliches / privates Schlüsselpaar?

Ich lerne etwas über SSH und wie man es verwendet, um Dateiübertragungen und Befehle zwischen einem Windows-Computer und einem Linux-Server zu sichern. Alles, was ich bisher gelesen habe, weist darauf hin, dass ich einen SFTP-Client (wie WinSCP) verwenden muss, um eine Verbindung zu meinem Server herzustellen und Dateien zu übertragen. Die Dokumente für WinSCP sagen mir nie, dass ich ein öffentliches oder privates Schlüsselpaar auf meinem Client und Server einrichten soll. Ich dachte, dass die öffentlichen und privaten Schlüssel ein grundlegendes Element für die Funktionsweise von SSH sind. Wie kann SFTP (das ich gelesen habe, basiert auf SSH) ohne ein öffentliches und ein privates Schlüsselpaar funktionieren (oder wird in der Situation standardmäßig ein unsicherer Modus wie FTP verwendet?)

Ursprünglich dachte ich, ich müsste diese Paare für jede Person erstellen, die eine Verbindung zum Server herstellen und die Datei mit dem öffentlichen Schlüssel manuell auf den Clientcomputer kopieren möchte.

BEARBEITEN =============================

Ich habe nicht verstanden, dass zwei Sätze von öffentlichen/privaten Schlüsseln verwendet werden, einer, der vom Server erstellt wird, und einer, der möglicherweise vom Client erstellt werden könnte. Anfangs dachte ich, dass sie das gleiche öffentliche/private Schlüsselpaar waren.

12
Hoytman

Kurze Antwort: Auf dem Server befindet sich notwendigerweise ein öffentliches/privates Schlüsselpaar. Es gibt kann ein öffentliches/privates Schlüsselpaar auf dem Client, aber der Server kann sich dafür entscheiden, Clients stattdessen mit Kennwörtern zu authentifizieren.


SSH ist ein generischer Tunnelmechanismus, bei dem einige "Anwendungsdaten" übertragen werden. Eine solche Anwendung ist die "Remote-Shell", mit der ein offenes "Terminal" auf einem Server abgerufen wird, auf dem Terminalanwendungen ausgeführt werden können. Eine andere, unterschiedliche Anwendung ist das als SFTP bekannte Dateiübertragungsprotokoll. Aus SSH-Sicht ist es irrelevant, welche Anwendung verwendet wird. Dies bedeutet, dass jedes Authentifizierungskonzept gleichermaßen für SSH (den "Remote Shell" -Teil) und SFTP gilt.

Der Server MUSS ein öffentliches/privates Schlüsselpaar haben. Dieser Schlüssel wird für den Tunnelteil verwendet, sodass ein Server für alle anwendbaren Protokolle dasselbe Schlüsselpaar verwendet. Die meisten Unix-ähnlichen Betriebssysteme (z. B. Linux) erstellen bei der Erstinstallation ein SSH-Schlüsselpaar und verwenden es anschließend. Dies bedeutet, dass Sie keinen "Schlüssel erstellen" müssen, wenn Sie Ihren SSH-Server so konfigurieren, dass er auch als SFTP verwendet wird: Der Server verfügt bereits über einen Schlüssel.

Ein Client kann ein öffentliches/privates Schlüsselpaar haben, wenn er basierend auf diesem Schlüssel authentifiziert werden möchte. Hier geht es um Client-Authentifizierung, d. h. darum, wie der Server sicherstellt, dass er mit dem richtigen Client spricht. Kennwortbasierte Authentifizierung und schlüsselbasierte Authentifizierung sind die beiden am häufigsten verwendeten Methoden (einige Server sind so konfiguriert, dass beide erforderlich sind). Per Definition erfordert nur die schlüsselbasierte Authentifizierung, dass der Client ein eigenes Schlüsselpaar speichert und verwendet.

14
Tom Leek

Es kann funktionieren, da das Schlüsselpaar bereits auf dem Server vorhanden ist. Der SSH-Server verfügt über die Schlüssel, die zum Schutz der übertragenen Informationen erforderlich sind. Der SSH-Server verwendet einen öffentlichen Schlüssel. Dieses Clientgerät verwendet den öffentlichen Schlüssel, um an den Server gesendete Informationen zu verschlüsseln. Der Server verwendet dann seinen privaten Schlüssel, um diese Informationen zu entschlüsseln und zu verarbeiten.

Siehe http://www.slashroot.in/secure-Shell-how-does-ssh-work

3
David George

In SSH gibt es zwei Sätze von Schlüsselpaaren: einen für den Server und einen für die Benutzer.

Das Serverschlüsselpaar ist obligatorisch, wird jedoch normalerweise während der Installation des Servers generiert. Sie müssen lediglich den Fingerabdruck des öffentlichen Schlüssels des Servers (ein einfacher Hash) überprüfen. Solange der Schlüssel unverändert bleibt, stellt Ihr Client eine stille Verbindung her .

Das Schlüsselpaar, das Sie zur Authentifizierung verwenden, kann jedoch optional (oder nicht zulässig) sein, je nachdem, welche Authentifizierungsmethode Sie auf dem Server zulassen oder benötigen.

Der Wiki-Artikel über SSH enthält viele wichtige Details, aber zusammenfassend gibt es 4 unterstützte Authentifizierungsmechanismen:

  • Passwort erfordert eine Kombination aus Benutzername und Passwort
  • Für den öffentlichen Schlüssel ist der Zugriff auf den privaten Teil des öffentlichen Schlüssels erforderlich, den Sie für die Authentifizierung verwenden (normalerweise richten Sie das Schlüsselpaar auf dem Client ein und aktualisieren nur den Server Konfiguration mit Ihrem öffentlichen Schlüssel).
  • Keyboard Interactive wird hauptsächlich für Einmalkennwörter und ähnliches verwendet.
  • GSSAPI , ein Framework, das zum Implementieren anderer Authentifizierungsschemata verwendet wird, normalerweise zum Implementieren von - Single Sign-On (vor allem Kerberos )
3
Stephane