Was ist SSH, und wie kann man es nutzen?
Dieses Tutorial behandelt die folgenden Themen:
SSH steht für Secure Shell Protocol, und Sie sind wahrscheinlich schon darauf gekommen, während Sie durch die Welt des Webhosting navigiert sind. Es sichert alle Informationen während der Übertragung über ein Netzwerk durch Verschlüsselung. Dank dieses Sicherheitsprotokolls können Sie Ihre Dateien verwalten, übertragen oder ändern und Befehle direkt auf dem Server ausführen.
In diesem Artikel werden wir uns darauf konzentrieren, was SSH bedeutet, wie es funktioniert, wofür es verwendet wird und was SSH-Schlüssel sind. Hier erfahren Sie auch, wie Sie eine SSH-Verbindung zu Ihrem Server herstellen und die üblichen Befehle, die Ihnen zur Verfügung stehen.
Was ist SSH?
Nach seiner anfänglichen Entwicklung als Tool zur Behebung von Schwachstellen, die Passwort-Sniffing-Angriffe ermöglichen, gewann das Protokoll an Popularität und hat sich weiterentwickelt. Später etablierte es sich als Standard für die sichere Kommunikation zwischen Geräten.
Definition
SSH (Secure Shell) ist ein Netzwerkprotokoll, das den Fernzugriff über eine verschlüsselte Verbindung ermöglicht. Es bietet eine robuste Authentifizierung und unterstützt sicheres Remote-Login, Befehlsausführung, Dateiübertragungen, Zugriffskontrolle, TCP/IP-Weiterleitung, etc.
Sie können Ihre Dateien und Ordner über eine SSH-Verbindung verwalten, ihre Berechtigungen ändern, Dateien direkt auf dem Server bearbeiten usw.
Erklärte SSH-Funktionen
Das Secure Shell-Protokoll bietet verschiedene Sicherheitsfunktionen, und unten finden Sie eine Liste der bemerkenswertesten:
- Datenschutz – Secure Shell schützt Ihre Daten durch Verschlüsselung vor Offenlegung.
- Integrität der Kommunikation – Das Secure Shell-Protokoll garantiert, dass die ausgetauschten Informationen unverändert bleiben.
- Authentifizierung – Dieses Protokoll erfordert einen Identitätsnachweis von Sender und Empfänger, um eine Verbindung herstellen zu können.
- Autorisierung – SSH ermöglicht es Ihnen auch, die Zugriffskontrolle auf Konten zu konfigurieren, indem es Benutzern unterschiedliche Privilegien bietet.
- Weiterleitung/Tunneling zum Verschlüsseln von TCP/IP-basierten Sitzungen – Benutzer können Tunnel einrichten, um unverschlüsselten Datenverkehr über einen verschlüsselten Netzwerkkanal zu übertragen.
Wofür wird das Secure Shell-Protokoll verwendet?
Das Secure Shell-Protokoll hat eine Vielzahl von Verwendungszwecken; am häufigsten wird es von Systemadministratoren verwendet. Es ist standardmäßig in Unix-, Linux-, Windows- und MAC-Servern implementiert. Dieses Protokoll erstellt einen sicheren Kanal zwischen einem lokalen Computer und einem entfernten Server, der die Ausführung von Befehlen, Zugriff auf Ressourcen, Dateitransfer, Leistungsaktualisierungen usw. ermöglicht. Es wird auch in verschiedenen Dateiübertragungsprotokollen, Routern, Serverhardwareverwaltung und -betrieb verwendet Systemverwaltung.
Darüber hinaus unterstützt das Secure Shell-Protokoll beim Identitätsmanagement, der Zugriffskontrolle und der Prozessautomatisierung.
Welche verschiedenen SSH-Authentifizierungsmethoden gibt es?
Im Allgemeinen gibt es zwei weit verbreitete SSH-Authentifizierungsmethoden: die passwortbasierte Authentifizierung und die auf einem öffentlichen Schlüssel (PKI) basierende Authentifizierung.
Obwohl Passwörter die herkömmliche Methode der Benutzeridentifikation sind, besteht immer die Gefahr einer Kompromittierung. Um eine angemessene Passworthygiene zu gewährleisten, müssen Sie starke Passwörter festlegen, sie regelmäßig ändern und geheim halten.
Leider kann dies bei der Anzahl der Anmeldeinformationen, die wir heutzutage verwenden, für viele Benutzer eine Herausforderung sein. Dies schafft die idealen Bedingungen für Hacker, um Ihre Login-Informationen auszunutzen. Obwohl Passwörter beim Übergang zwischen den Remote-Computern verschlüsselt werden, könnte ein Brute-Force-Angriff leider immer noch knacken sie. Diese Tatsache macht Passwörter natürlich zu einer weniger sicheren Methode zur Identifizierung. Die Offenlegung Ihrer SSH-Anmeldeinformationen kann einem Hacker Root-Zugriff ermöglichen, was zu schrecklichen Konsequenzen führen kann.
PKI-Authentifizierung
Die schlüsselbasierte Authentifizierung ist die bevorzugte Methode und wird gegenüber der passwortbasierten Authentifizierung empfohlen, die mit Brute-Force durchgeführt werden kann.
Die PKI-Authentifizierung verwendet kryptografische Schlüssel, um eine Vertrauensbeziehung zwischen Server und Client herzustellen. Die schlüsselbasierte Identifizierung kann eine Passphrase (Passwort) erfordern oder ohne eine Passphrase auf dem Schlüssel funktionieren.
Um diesen Authentifizierungstyp zu verwenden, müssen Sie ein SSH-Schlüsselpaar generieren. Das Schlüsselpaar besteht aus einem öffentlichen und einem privaten Schlüssel. Der öffentliche Schlüssel wird auf dem Server aufbewahrt, während der private Schlüssel auf Ihrem Computer aufbewahrt wird.
Wenn Sie eine Verbindung über Secure Shell herstellen, wird über das Schlüsselpaar eine Vertrauensbeziehung zwischen Ihrem Computer und dem Server hergestellt. Wenn einer der Schlüssel fehlt oder eine Diskrepanz zwischen den Schlüsseln besteht, kann keine Verbindung hergestellt werden.
Die Authentifizierungsmethode, die SiteGround unterstützt, ist die PKI-Authentifizierung, da sie eine bessere Sicherheit für Ihren SSH-Zugriff bietet.
SSH-Architektur und -Komponenten
Die Secure Shell hat eine mehrschichtige Architektur, die 3 Hauptschichten kapselt – Transport, Authentifizierung und Verbindung. In diesem Abschnitt werden wir uns jeden von ihnen und ihre Komponenten ansehen, also lesen Sie weiter.
Transportschicht
Normalerweise verwendet die Transportschicht das Transmission Control Protocol der Internet Protocol Suite (TCP/IP) auf der Standard-SSH-Portnummer 22. Diese Schicht kümmert sich um den anfänglichen Schlüsselaustausch und die Authentifizierung, überprüft ihre Integrität und leitet die Verschlüsselung/Entschlüsselung ein. Es komprimiert auch die übertragenen Daten, um den Prozess zu beschleunigen. Somit spielt es eine wichtige Rolle beim sicheren Informationsaustausch zwischen entfernten Hosts.
Bei SiteGround ist die Standardportnummer für SSH 18765 und weicht von der Standardportnummer 22 ab, um die Sicherheit zu erhöhen.
Während der Schlüsselaustauschphase identifiziert sich der Server gegenüber dem Client mit einem Hostschlüssel. Wenn Sie zum ersten Mal eine Verbindung zu diesem Server herstellen, werden Sie vom Client gefragt, ob Sie diesen Hostschlüssel akzeptieren, und wenn ja, speichert der Client eine Kopie davon lokal.
Wenn Sie bestätigen, dass Sie fortfahren möchten, speichert der Client die Kopie in einer Known Host Keys Datei zum späteren Nachschlagen.
Auf diese Weise müsste der Client bei aufeinanderfolgenden Verbindungen zu demselben Server nur den Hostschlüssel mit dem darin enthaltenen Datensatz überprüfen.
Authentifizierungsschicht
Wenn die Transportschicht die Verschlüsselung eingerichtet hat, wird der Client aufgefordert, sich mit einer der unterstützten Methoden zu authentifizieren. Die Benutzer-Authentifizierungsschicht bietet eine Reihe von Authentifizierungsalgorithmen und kümmert sich um die Authentifizierung des Clients.
Wie bereits erwähnt, erlaubt SiteGround nur die PKI-Authentifizierung und unterstützt die folgenden Verschlüsselungsalgorithmen für öffentliche und private Schlüsselpaare.
- DSA
- RSA
- ECDSA
- Ed25519
Der standardmäßige kryptografische Algorithmus zum Generieren eines Schlüsselpaars bei SiteGround ist RSA, 2048-Bit-Verschlüsselung, vergleichbar mit einem 617-stelligen langen Passwort.
SSH-Schlüssel
Ein SSH-Schlüsselpaar besteht aus privaten und öffentlichen Schlüsseln, die in einer öffentlichen SSH-Schlüssel-Authentifizierungsmethode verwendet werden. Bei dieser Authentifizierungsmethode wird eine Datei (bekannt als der private Schlüssel) typischerweise auf der Clientseite gehalten, und die andere Datei (bekannt als der öffentliche Schlüssel) wird auf der Serverseite gespeichert. Jedes Paar von SSH-Schlüsseln ist einzigartig und stellt sicher, dass nur Benutzer mit dem richtigen Paar Zugriff erhalten.
- Öffentliche Schlüssel ermöglichen Benutzern den Zugriff auf einen Remote-Server, und Server verwenden sie, um Daten zu verschlüsseln. Praktisch jeder, der den öffentlichen SSH-Schlüssel des Paares besitzt, kann Daten verschlüsseln, aber nur der Benutzer mit dem privaten Schlüssel kann sie entschlüsseln.
Wenn der Client den öffentlichen Schlüssel an den SSH-Server sendet und der Server seine Authentizität bestätigt, markiert der Server den Schlüssel als autorisiert. Daher werden öffentliche Schlüssel auch als autorisierte Schlüssel bezeichnet und in der Datei authorized_keys im Home-Verzeichnis des Benutzerkontos gespeichert.
- Private Schlüssel werden auch Identitätsschlüssel genannt, da sie die Identität des Benutzers belegen. Ein Benutzer kann vom Server nur dann richtig authentifiziert werden, wenn der Benutzer den privaten Schlüssel besitzt, der dem öffentlichen Schlüssel entspricht. Benutzer müssen ihre privaten Schlüssel vertraulich behandeln und dürfen sie nicht mit anderen teilen.
- Ein Sitzungsschlüssel wird gemeinsam vom SSH-Client und vom Server generiert. Dieser symmetrische Schlüssel wird verwendet, um die gesamte SSH-Sitzung zu verschlüsseln. Beide Entitäten einigen sich auf einen Sitzungsschlüssel, der basierend auf den öffentlichen und privaten Schlüsseldaten verwendet wird, um ein „gemeinsames Geheimnis“ zu generieren. Es wird von beiden Parteien sicher geteilt und wird verwendet, um die ausgetauschten Daten zu verschlüsseln und zu entschlüsseln (dh symmetrische Verschlüsselung).
Auf diese Weise kann ein Lauscher die übertragenen Daten nicht abfangen; Wenn die Sitzung geschlossen wird, wird der Sitzungsschlüssel zerstört.
Verbindungsschicht
Wenn der Authentifizierungsprozess erfolgreich abgeschlossen ist, wird eine Multiplexverbindung zum Server in mehreren Kanälen initiiert. Jeder dieser logischen Kanäle überträgt Daten in beide Richtungen, sodass viele Sitzungen von einer einzigen SSH-Verbindung stammen können.
Einer dieser Kanäle ist das Secure File Transfer Protocol (SFTP), das Ihnen den Zugriff und die Übertragung von Dateien sicher über eine SSH-Verbindung.
Wie funktioniert SSH?
Wie Sie wahrscheinlich herausgefunden haben, benötigen Sie einen SSH-Client, um eine SSH-Verbindung zu Ihrem Server herzustellen. Secure Shell arbeitet nach einem Client-Server-Modell, wobei der SSH-Client eine Software ist, die es Benutzern ermöglicht, sich sicher mit einem entfernten Host zu verbinden.
Der SSH-Client initiiert eine SSH-Verbindungsanfrage an den Server, und der SSH-Server antwortet mit einer zufälligen Nachricht. Der Client verschlüsselt diese Nachricht mit dem privaten Schlüssel und sendet sie zurück an den Server. Der Server entschlüsselt dann diese Nachricht unter Verwendung des öffentlichen Schlüssels, der dem privaten Schlüssel des Clients entspricht. Auf diese Weise überprüft der Server, ob der öffentliche und der private Schlüssel Teil eines Paares sind.
Sobald diese Prüfung abgeschlossen ist, einigen sich beide Entitäten auf ein gemeinsames Geheimnis (Sitzungsschlüssel) für die Sitzung zu verwenden.
Wenn das Shared Secret eingerichtet ist, verwendet der Client den privaten und den Sitzungsschlüssel, um einen Hash-Wert zu berechnen, der an den Server gesendet wird. In der Zwischenzeit berechnet der Server auch einen Hash-Wert unter Verwendung des Sitzungsschlüssels und des öffentlichen Schlüssels. Wenn beide Werte übereinstimmen, beweist das, dass der Client der Besitzer des privaten Schlüssels ist und der Server gewährt dem Client SSH-Zugriff.
Wie man SSH-Schlüssel generiert und importiert
Bisher haben Sie verstanden, dass der erste Schritt zum Herstellen einer SSH-Verbindung das Generieren eines SSH-Schlüsselpaars ist.
Sie können dies entweder lokal oder von Ihrem Webhosting-Konto aus tun, wenn Ihr Plan SSH-Zugang beinhaltet. Alle SiteGround-Pläne ermöglichen SSH-Zugriff, damit unsere Kunden ihre Websites effektiv über SSH verwalten können.
Dieser Abschnitt wird erklären, wie Sie ein Schlüsselpaar aus Ihrem Site Tools generieren, wie Sie dies lokal tun und wie Sie Ihren SSH-Schlüssel importieren, also lesen Sie weiter.
Erzeuge ein SSH-Schlüsselpaar aus Site Tools
Wenn Sie ein SiteGround-Kunde sind, müssen Sie sich bei der Site Tools der Site anmelden, auf die Sie den Zugriff erlauben möchten, um neue RSA-Schlüssel zu generieren. Wenn Sie dort sind, navigieren Sie zum Dev > SSH Manager aus der Seitenleiste, geben Sie einen Namen für Ihren Schlüssel ein und legen Sie ein Passwort fest, dann klicken Sie auf Erstellen.
Nachdem das Paar erstellt wurde, sehen Sie die Meldung „SSH key is created“. Sie können alle Ihre Schlüssel im Abschnitt SSH-Schlüssel verwalten verwalten. Klicken Sie auf das Aktionen-Menü neben dem von Ihnen gewählten Schlüsselnamen, um den privaten und den öffentlichen Schlüssel des Paares zu erhalten.
Im selben Menü können Sie auch angeben, welche IP-Adressen (oder IP-Bereiche) mit dem Schlüsselpaar Zugriff erhalten, ihren Namen ändern und die SSH-Anmeldeinformationen erhalten.
Da SSH-Schlüssel direkt vom Server generiert werden, müssen Sie nur den Kopier Privaten Schlüssel und in einer Textdatei auf Ihrem Computer speichern.
Erzeuge lokal ein SSH-Schlüsselpaar
Alternativ können Sie ein SSH-Schlüsselpaar auf Ihrem lokalen Computer generieren; die Schritte variieren je nach Betriebssystem (OS).
Sie können einen SSH-Client für Windows verwenden, um SSH-Schlüssel namens PuTTY, und Sie können den Schritten in diesem Artikel folgen, um das zu tun.
Mac OS hat einen eingebauten SSH-Client namens Terminal, den Sie leicht mit der Spotlight-Suchfunktion finden können, indem Sie die Leertaste + Befehlstaste drücken. Laden Sie die Terminal-Anwendung, geben Sie „ssh-keygen -t rsa“ in die Befehlszeile ein und drücken Sie die Eingabetaste. Dieser Befehl generiert ein Schlüsselpaar mit der SSH-ID „rsa“ und das ist der Name Ihres Schlüsselpaars. Ausführlichere Informationen finden Sie in unserem Artikel So erstellen Sie SSH-Schlüssel auf Ihrem Mac OS.
Linux OS-Benutzer können auch das eingebaute Terminal verwenden, um Schlüssel mit dem gleichen “ssh” zu generieren -keygen“ Befehl.
Nachdem Sie die Schlüssel generiert haben, suchen Sie sie an der entsprechenden Stelle Ihres Computers und kopieren Sie den öffentlichen Schlüssel.
Wie importiert man SSH-Schlüssel bei SiteGround
Um einen neuen SSH-Schlüssel zu importieren, gehen Sie zu Site Tools > Entwickler > SSH-Schlüsselmanager > Neu hinzufügen > Importieren. Geben Sie den Schlüsselnamen ein und fügen Sie den öffentlichen Schlüssel in das entsprechende Feld ein. Alternativ können Sie es über den Link Schlüssel aus Datei importieren importieren.
Wenn der öffentliche SSH-Schlüssel dort importiert wird, können Sie den Zugriff auf ihn über die IP-Adresse verwalten. Sie können den SSH-Schlüssel auch im Aktionen-Menü anzeigen, obwohl Sie nur den öffentlichen Schlüssel sehen können.
So richten Sie SSH-Zugriff auf Ihr Hosting-Konto ein
Jetzt, da Ihre SSH-Schlüssel bereit sind, können Sie die Schritte in den Artikeln unten befolgen, um zu sehen, wie Sie je nach Betriebssystem eine Verbindung herstellen können.
- Wie melde ich mich über SSH in meinem geteilten SiteGround-Konto an PuTTY?
- Wie melde ich mich über SSH auf Mac OS in meinem geteilten SiteGround-Konto an?
- Wie melde ich mich unter Linux über SSH in meinem gemeinsamen SiteGround-Konto an?
Gemeinsame SSH-Befehle
Um Ihre Dateien über eine SSH-Verbindung zu verwalten, müssen Sie sich zumindest einen grundlegenden Satz von Befehlen aneignen. Werfen Sie einen Blick auf unsere SSH-Tutorials, um zu lernen, wie man eine Liste auflistet, eine neue Datei/einen neuen Ordner erstellt, Dateien bearbeitet oder löscht und Ordner, erstellen und extrahieren Archive oder verwalten Berechtigungen und Eigentum.
Zusammenfassend haben wir in diesem Artikel erklärt, was das SSH-Protokoll ist, seine Architektur, was SSH-Schlüssel sind und andere Komponenten. Wir haben auch die Funktionsweise von SSH, das Generieren oder Importieren von SSH-Schlüsseln und die Verbindung zu Ihrem Konto über SSH angesprochen.