Heim  >  Artikel  >  Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

Linux中文社区
Linux中文社区nach vorne
2023-08-02 17:51:431122Durchsuche

Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

SSH (Secure Shell) ist ein Netzwerksicherheitsprotokoll, das sichere Zugriffs- und Dateiübertragungsdienste durch Verschlüsselungs- und Authentifizierungsmechanismen implementiert. Herkömmliche Remote-Anmelde- oder Dateiübertragungsmethoden wie Telnet und FTP verwenden zur Datenübertragung Klartext, was viele Sicherheitsrisiken birgt. Da die Menschen der Netzwerksicherheit mehr Aufmerksamkeit schenken, werden diese Methoden allmählich weniger akzeptiert. Das SSH-Protokoll bietet sichere Anmeldung und andere sichere Netzwerkdienste in einer unsicheren Netzwerkumgebung durch Verschlüsselung und Überprüfung von Netzwerkdaten. Als sichere Alternative zu Telnet und anderen unsicheren Remote-Shell-Protokollen ist das SSH-Protokoll weltweit weit verbreitet und die meisten Geräte unterstützen die SSH-Funktion.

Verzeichnis

Wie lautet die SSH-Portnummer?
Wie funktioniert SSH?
Verwendung von PuTTY- und OpenSSHSSH-Schlüsseln

Wie lautet die SSH-Portnummer?

Wenn SSH auf STelnet, SFTP und SCP angewendet wird, ist der standardmäßig verwendete SSH-Port 22. Wenn SSH auf NETCONF angewendet wird, können Sie den SSH-Port auf 22 oder 830 festlegen. Der SSH-Port unterstützt Änderungen. Nach der Änderung werden alle aktuellen Verbindungen getrennt und der SSH-Server beginnt, den neuen Port zu überwachen.

Wie funktioniert SSH?

SSH besteht aus einem Server und einem Client. Um einen sicheren SSH-Kanal einzurichten, durchläuft es die folgenden Phasen:

Verbindungsaufbau

Der SSH-Server wartet auf Client-Verbindungen Auf der angegebenen Port-Anfrage stellen die beiden Parteien eine TCP-Verbindung her, nachdem der Client eine Verbindungsanforderung an den Server initiiert hat.

Versionsaushandlung

Das SSH-Protokoll existiert derzeit in den Versionen SSH1.X (Version vor SSH2.0) und SSH2.0. Im Vergleich zum SSH1.X-Protokoll wurde die Struktur des SSH2.0-Protokolls erweitert und kann mehr Authentifizierungsmethoden und Schlüsselaustauschmethoden unterstützen und gleichzeitig die Servicefunktionen verbessern. Der SSH-Server und der SSH-Client bestimmen die endgültige verwendete SSH-Versionsnummer durch Aushandlung.

Algorithmusverhandlung

SSH unterstützt mehrere Verschlüsselungsalgorithmen. Basierend auf den von jeder Partei unterstützten Algorithmen verhandeln beide Parteien den Schlüsselaustauschalgorithmus, der letztendlich zum Generieren von Sitzungsschlüsseln verwendet wird, den Verschlüsselungsalgorithmus, der zum Verschlüsseln von Dateninformationen verwendet wird, und den verwendeten Verschlüsselungsalgorithmus zur Durchführung digitaler Signaturen und authentifizierter Public-Key-Algorithmen und HMAC-Algorithmen zum Schutz der Datenintegrität.

Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

Super! N Open-Source-Projekte, die für die Übernahme privater Arbeiten unerlässlich sind!

Schlüsselaustausch

Der Server und der Client verwenden den Schlüsselaustauschalgorithmus, um gemeinsam genutzte Sitzungsschlüssel und Sitzungs-IDs dynamisch zu generieren und verschlüsselte Kanäle einzurichten. Der Sitzungsschlüssel wird hauptsächlich zur Verschlüsselung der nachfolgenden Datenübertragung verwendet und die Sitzungs-ID dient zur Identifizierung der SSH-Verbindung während des Authentifizierungsprozesses.

Benutzerauthentifizierung

Der SSH-Client initiiert eine Authentifizierungsanforderung an den Server und der Server authentifiziert den Client. SSH unterstützt die folgenden Authentifizierungsmethoden:

  • Passwort-(Passwort-)Authentifizierung: Der Client authentifiziert sich über Benutzername und Passwort und sendet den verschlüsselten Benutzernamen und das Passwort an den Server. Der Server entschlüsselt den Benutzernamen und das Passwort mit dem lokal gespeicherten Benutzernamen und Passwort . Vergleichen Sie und geben Sie eine Authentifizierungs-Erfolgs- oder -Fehlermeldung an den Client zurück.
  • Schlüsselauthentifizierung (öffentlicher Schlüssel): Der Client authentifiziert sich beim Server über Benutzername, öffentlichen Schlüssel, öffentlichen Schlüsselalgorithmus und andere Informationen.
  • Passwort-PublicKey-Authentifizierung: bedeutet, dass Benutzer sowohl die Passwortauthentifizierung als auch die Schlüsselauthentifizierung erfüllen müssen, um sich anzumelden.
  • alle Authentifizierung: Solange entweder die Passwortauthentifizierung oder die Schlüsselauthentifizierung erfüllt ist.

Sitzungsanforderung

Nachdem die Authentifizierung bestanden wurde, sendet der SSH-Client eine Sitzungsanforderung an den Server und fordert den Server auf, einen bestimmten Diensttyp bereitzustellen, dh eine entsprechende Sitzung mit dem Server einzurichten . Darüber hinaus sollten Sie bei der Suche nach dem öffentlichen Konto Linux auf diese Weise lernen, im Hintergrund auf „Linux“ zu antworten, um ein Überraschungsgeschenkpaket zu erhalten.

Sitzungsinteraktion

Nachdem die Sitzung eingerichtet ist, tauschen der SSH-Server und der Client Dateninformationen über die Sitzung aus.

Verwendung von PuTTY und OpenSSH

PuTTY ist ein klassisches kostenloses SSH-Verbindungstool unter Windows. Es wird normalerweise für die Remote-Anmeldung bei Geräten verwendet, die das SSH-Protokoll verwenden. Die neueste Version kann von der offiziellen Website von PuTTY heruntergeladen werden.

OpenSSH ist eine Open-Source-Implementierung des SSH-Protokolls und unterstützt die Ausführung auf Unix-Betriebssystemen. Die neueste Version kann von der offiziellen OpenSSH-Website heruntergeladen werden. Derzeit enthält Windows 10 bereits OpenSSH-Client- und Serversoftware, die unter „Einstellungen – Anwendungen – Anwendungen und Funktionen – Optionale Funktionen“ gesucht und installiert werden kann.

SSH-Schlüssel

Symmetrische Verschlüsselung und asymmetrische Verschlüsselung

Der grundlegende Weg zur Verbesserung der Sicherheit ist die Verschlüsselung. Der Verschlüsselungsalgorithmus wandelt Klartext über einen Schlüssel in Chiffretext um, um eine sichere Übertragung zu ermöglichen. SSH verwendet während seines Arbeitsprozesses eine Kombination aus symmetrischen Verschlüsselungs- und asymmetrischen Verschlüsselungsalgorithmen, um die Sicherheit der Informationsübertragung durch vorgenerierte SSH-Schlüssel zu gewährleisten. Die Verschlüsselungs- und Entschlüsselungsprozesse der beiden Verschlüsselungsalgorithmen sind in der folgenden Abbildung dargestellt.

Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

Symmetrischer Verschlüsselungsalgorithmus


Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!

Asymmetrischer Verschlüsselungsalgorithmus

Der symmetrische Verschlüsselungsalgorithmus verwendet denselben Schlüssel zum Ver- und Entschlüsseln von Daten. Der beim Aufbau einer SSH-Verbindung generierte Sitzungsschlüssel ist ein symmetrischer Schlüssel. Der symmetrische Schlüssel wird vom Client und vom Server mithilfe von Schlüsselaustauschalgorithmen basierend auf gemeinsam genutzten Teilinformationen und ihren eigenen privaten Daten generiert. Da der symmetrische Verschlüsselungsalgorithmus sehr schnell verschlüsselt und entschlüsselt, eignet er sich für Szenarien, in denen große Datenmengen übertragen werden.

Asymmetrisch verschlüsseltes Senden und Empfangen erfordert die Verwendung eines Paares zugehöriger SSH-Schlüssel, eines öffentlichen Schlüssels und eines privaten Schlüssels. Der private Schlüssel wird von der Partei aufbewahrt, die ihn generiert hat, und der öffentliche Schlüssel kann an alle anderen Personen gesendet werden, die eine Kommunikation anfordern. Der Absender verwendet den empfangenen öffentlichen Schlüssel, um seinen Kommunikationsinhalt zu verschlüsseln, und nur der Empfänger kann den privaten Schlüssel verwenden, um den Kommunikationsinhalt zu entschlüsseln und zu erhalten. Der private Schlüssel der asymmetrischen Verschlüsselung muss nicht im Netzwerk offengelegt werden, und die Sicherheit wird erheblich erhöht, aber die Ver- und Entschlüsselungsgeschwindigkeit ist viel langsamer als die des symmetrischen Schlüssels.

Asymmetrische Verschlüsselung wird in zwei Phasen des SSH-Verbindungsprozesses verwendet. Zum einen generieren sowohl der Server als auch der Client während der Schlüsselaustauschphase ihre eigenen temporären öffentlichen Schlüssel und privaten Schlüssel, die zur Berechnung desselben Sitzungsschlüssels verwendet werden, der für nachfolgende verschlüsselte Kommunikationsinhalte verwendet wird. Die andere besteht darin, die Funktion zu verwenden, dass nur der passende private Schlüssel den mit dem öffentlichen Schlüssel während der Benutzerauthentifizierungsphase verschlüsselten Inhalt eindeutig entschlüsseln kann, um die Identität des Clients anhand des Paars aus öffentlichem Schlüssel und privatem Schlüssel des Clients zu überprüfen.

Schlüsselauthentifizierung

Die beiden grundlegendsten Methoden der SSH-Benutzerauthentifizierung sind die Passwortauthentifizierung und die Schlüsselauthentifizierung. Bei der Passwortauthentifizierung werden Ihr Benutzername und Ihr Passwort zur Authentifizierung an den Server gesendet. Diese Methode ist relativ einfach und Sie müssen Ihren Benutzernamen und Ihr Passwort bei jeder Anmeldung eingeben. Bei der Schlüsselauthentifizierung wird ein Paar aus öffentlichem und privatem Schlüssel zur Identitätsüberprüfung verwendet, um eine sichere, passwortfreie Anmeldung zu ermöglichen. Dies ist eine weit verbreitete und empfohlene Anmeldemethode. Das Grundprinzip der Schlüsselauthentifizierung besteht darin, dass der Server den öffentlichen Schlüssel des Clients zum Verschlüsseln zufälliger Inhalte verwendet und der Client ihn mit seinem eigenen privaten Schlüssel entschlüsselt und an den Server sendet, um seine Identität zu überprüfen. Der spezifische Vorgang ist in der folgenden Abbildung dargestellt .

Was ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!


SSH-Schlüsselauthentifizierungs-Anmeldeprozess

  • Bevor eine SSH-Verbindung hergestellt wird, muss der SSH-Client sein eigenes Paar aus öffentlichem Schlüssel und privatem Schlüssel generieren und seinen öffentlichen Schlüssel auf dem SSH-Server speichern.
  • Wenn der SSH-Client eine Anmeldeanfrage sendet, sucht der SSH-Server lokal anhand des Benutzernamens und anderer Informationen in der Anfrage nach dem öffentlichen Schlüssel des Clients und verwendet diesen öffentlichen Schlüssel, um eine Zufallszahl zu verschlüsseln und an diese zu senden der Kunde.
  • Der Client verwendet seinen eigenen privaten Schlüssel, um die zurückgegebenen Informationen zu entschlüsseln und an den Server zu senden.
  • Der Server überprüft, ob die vom Client entschlüsselten Informationen korrekt sind. Wenn sie korrekt sind, wird die Authentifizierung bestanden.

Das obige ist der detaillierte Inhalt vonWas ist SSH? Für eine ausführliche Erklärung des Prinzips lesen Sie einfach diesen Artikel!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Linux中文社区. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen