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.
Wie lautet die SSH-Portnummer?
Wie funktioniert SSH?
Verwendung von PuTTY- und OpenSSHSSH-Schlüsseln
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.
SSH besteht aus einem Server und einem Client. Um einen sicheren SSH-Kanal einzurichten, durchläuft es die folgenden Phasen:
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.
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.
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.
Super! N Open-Source-Projekte, die für die Übernahme privater Arbeiten unerlässlich sind!
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.
Der SSH-Client initiiert eine Authentifizierungsanforderung an den Server und der Server authentifiziert den Client. SSH unterstützt die folgenden Authentifizierungsmethoden:
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.
Nachdem die Sitzung eingerichtet ist, tauschen der SSH-Server und der Client Dateninformationen über die Sitzung aus.
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.
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.
Symmetrischer Verschlüsselungsalgorithmus
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.
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 .
SSH-Schlüsselauthentifizierungs-Anmeldeprozess
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!