Was ist SSH und wie funktioniert es?

SSH ist ein gesichertes Netzwerkprotokoll für den Zugriff auf entfernte Computer in einem Netzwerk.

Computer kommunizieren über Netzwerke miteinander. Daher definierten Netzwerkforscher eine Reihe von Regeln für die Kommunikation mit anderen Maschinen und begannen mit der Entwicklung von Protokollen wie Telnet; Damit kann ein Benutzer die Kontrolle über einen anderen Computer übernehmen.

Aber sie sind nicht sicher, dh jeder in der Mitte des Netzwerks kann die übertragenen Daten abfangen und lesen. Mitte der 90er Jahre wurde ein sichereres Protokoll namens ssh als zuverlässiger Nachfolger des Telnet-Protokolls eingeführt.

Wenn Sie ein Softwareentwickler oder Systemadministrator sind, der in einer Branche arbeitet, haben Sie ssh möglicherweise mindestens einmal verwendet. Wenn Sie es nicht getan haben, lernen Sie es jetzt, da es eine der wichtigsten Fähigkeiten ist, die Sie kennen müssen.

Was ist SSH?

SSH oder Secure Shell oder Secure Socket Shell ist ein Netzwerkprotokoll, das uns hilft, sicher auf entfernte Maschinen (meistens entfernte Server) zuzugreifen und mit ihnen zu kommunizieren.

Es bietet eine starke Verschlüsselung und wird häufig von Netzwerkadministratoren und Entwicklern verwendet, um Remote-Systeme und -Anwendungen zu verwalten, Befehle auszuführen, Dateien freizugeben usw.

Notwendigkeit von SSH

SSH wurde 1995 entwickelt, um Sicherheitsprobleme zu lösen, mit denen ungesicherte Fernzugriffsprotokolle wie z rlogin, rsch, Telnet.

Lassen Sie uns nun über Telnet sprechen, das für Teletype Network steht, das 1969 entwickelt wurde. Es ist ein einfaches Befehlszeilentool, das auf Ihrem Computer ausgeführt wird, um auf einen Remote-Server (irgendwo auf der Welt) zuzugreifen. Und senden Sie Befehle, die auf diesem Server ausgeführt werden sollen, als ob Sie direkt vor dem Remote-Server sitzen würden (sogar meilenweit vom Server entfernt). Telnet sendet und empfängt Nachrichten im Klartext über ein Netzwerk.

  So überprüfen Sie, ob Sie einen Skylake- oder Kaby-Lake-Prozessor haben

Die Befehle, die Sie ausführen würden, könnten Programme ausführen, Verzeichnisse erstellen, Dateien erstellen/löschen/übertragen, Dienste starten/stoppen usw.

Das Problem beim Verbinden einer anderen Maschine in einem Netzwerk besteht darin, dass die zu übertragenden Daten viele Netzwerke durchlaufen. In der Zwischenzeit könnten einige davon unsicher sein, und die übertragenen Daten könnten abgefangen und möglicherweise modifiziert werden, bevor sie den beabsichtigten Zielcomputer erreichen.

In der Anfangszeit, als Sicherheit noch nicht so wichtig war, erfolgte die gesamte Kommunikation im Klartext. Daher können die Daten, die über das Internet zwischen Client und Server übertragen werden, leicht abgefangen werden. Und es kann gelesen werden, da die Nachrichten nicht verschlüsselt sind.

Daher sind Klartextprotokolle extrem unsicher und dürfen niemals für die Übertragung sensibler Daten wie Passwörter, Geheimnisse usw. verwendet werden. Daher wird SSH als sichere Alternative zu älteren Netzwerkprotokollen für den Fernzugriff angesehen.

Wie funktioniert es?

SSH verwendet eine Client-Server-Architektur für die sichere Kommunikation über das Netzwerk, indem ein SSH-Client mit dem SSH-Server verbunden wird. Standardmäßig hört der ssh-Server auf den Standard-TCP-Port 22 (Sie können dies für eine bessere Sicherheit ändern).

Es verwendet eine Public-Key-Kryptografietechnik, um sich zwischen Client und Server zu authentifizieren. Darüber hinaus verwendet das Protokoll starke symmetrische Verschlüsselungs- und Hash-Algorithmen für den Nachrichtenaustausch zwischen Client und Server, um Datenschutz und Datenintegrität zu gewährleisten.

Linux ist aufgrund seiner Sicherheit und Langlebigkeit das weit verbreitete Betriebssystem für Remote-Server. Viele Server, die das Linux-Betriebssystem im Internet verwenden, laufen seit Jahren ohne viele Ausfälle oder sogar Neustarts.

  So erhalten Sie eine Google Voice-Nummer

Die meisten SSH-Sitzungen (ein Zeitraum, in dem wir auf den Remote-Server zugreifen) haben nur die folgenden zwei Operationen:

  • Authentifizierung
  • Befehlsausführung

SSH-Server können Clients mit einer Vielzahl von Methoden authentifizieren.

Und die zwei beliebten Wege sind:

Die kennwortbasierte Authentifizierung ist die Standardmethode für die Authentifizierung für OpenSSH installierte Clients. Es ist die grundlegendste SSH-Authentifizierung, aber nicht die sicherste.

Auch wenn Passwörter sicher an den Server gesendet werden, können moderne Brute-Force-Angriffe die Authentifizierung umgehen.

Die schlüsselbasierte Authentifizierung verbessert die Systemsicherheit noch weiter, indem SSH-Schlüsselpaare generiert werden, was sich als zuverlässige und sichere Alternative erweist.

Nachdem der Server den Client erfolgreich authentifiziert hat, wird eine sichere Verbindung zwischen ihnen hergestellt.

Zugriff auf den Remote-Server über SSH

Wenn Sie ein Mac/Linux-Benutzer sind, können Sie das Terminal direkt verwenden, um ssh-Befehle einzugeben und auszuführen, da OpenSSH bereits standardmäßig installiert ist.

Wenn Sie ein Windows-Benutzer sind, müssen Sie einen Terminal-Emulator-Client eines Drittanbieters installieren, um ssh-Befehle auszuführen. Kitt ist der beliebteste SSH-Client für Windows-Betriebssysteme.

Um sich mit SSH mit einem Remote-Server zu verbinden, müssen Sie mindestens zwei Dinge wissen.

Die Syntax für den grundlegenden ssh-Befehl lautet:

$ ssh <user-name> @ <host> -p <port-no>

Der Benutzername ist der Benutzername des entfernten Computers, den wir zu verbinden versuchen (und nicht der Benutzer auf Ihrem lokalen Computer), und der Host ist entweder eine IP-Adresse oder ein Domänenname.

Sehen wir uns ein Beispiel für die Verbindung zu einem Remote-Server mithilfe von an OverTheWire Webseite. Es ist eine kostenlose Wargame-Challenge-Website.

  So erhalten Sie die AWS Data Analytics-Zertifizierung (DAS-C01)

Verbinden wir uns nun mit dem Bandit Herausforderung mit ssh. Es ist eine der verfügbaren Herausforderungen auf der Website, die lehrt, wie man sich mit SSH anmeldet.

Referenzen:

Benutzername & Passwort: bandit0
Host & Port: bandit.labs.overthewire.org, 2220

Wenn Sie den folgenden Befehl eingeben und die Eingabetaste drücken:

$ ssh [email protected]verthewire.org -p 2220

Sie werden zur Authentifizierung nach dem Passwort gefragt. Geben Sie nun das Passwort ein und drücken Sie die Eingabetaste:

Wenn das eingegebene Passwort korrekt ist, sind Sie erfolgreich beim Remote-Server angemeldet und Ihr Terminal sieht aus wie im obigen Bild.

Jetzt können Sie das Terminal des Remote-Computers verwenden, um Ihre Befehle einzugeben und auszuführen und Ihre erforderlichen Operationen auszuführen.

Wenn Sie die SSH-Sitzung beenden möchten, geben Sie den Befehl exit ein:

$ exit

Sie erhalten die Meldung „Verbindung geschlossen“, wenn Sie sich erfolgreich von der SSH-Sitzung abmelden.

Fazit

Der Hauptgrund für die Popularität von SSH ist, dass die gesamte Kommunikation zwischen Server und Client verschlüsselt ist.

Die meisten Leute gehen davon aus, dass die Verwendung von ssh komplex ist und dass es nicht leicht zu verstehen ist, wie es funktioniert, aber es ist einfacher als Sie denken. Jetzt haben Sie ein grundlegendes Verständnis von SSH, wie es funktioniert, welche Sicherheitsaspekte dahinterstecken und warum es eine entscheidende Rolle bei der Kommunikation spielt.

Erkunden Sie als Nächstes einige der Ressourcen, um Sysadmin zu werden.