GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist SSH?

Einführung

Beim Zugriff auf einen Computer über ein Netzwerk benötigen Systemadministratoren eine sichere Verbindung, um sich vor böswilligen Cyberangriffen wie dem Ausspähen von Passwörtern zu verstecken. Da große Netzwerke Sicherheitslücken aufweisen, sind Verschlüsselungsprotokolle wie TLS/SSL, IPsec, S/MIME, PGP und SSH erforderlich, um den erforderlichen Schutz zu gewährleisten.

Dieser Artikel bietet einen Überblick über das SSH-Protokoll – seine Funktion, Terminologie und Anwendungsfälle.

Was bedeutet SSH?

Das Akronym SSH steht für „Secure Shell“. Das SSH-Protokoll wurde als sichere Alternative zu ungesicherten Remote-Shell-Protokollen entwickelt. Es verwendet ein Client-Server-Paradigma, bei dem Clients und Server über einen sicheren Kanal kommunizieren.

Das SSH-Protokoll hat drei Schichten:

  • Die Transportschicht . Gewährleistet eine sichere Kommunikation zwischen dem Server und dem Client, überwacht die Datenverschlüsselung/-entschlüsselung und schützt die Integrität der Verbindung. Es führt auch Daten-Caching und -Komprimierung durch.
  • Die Authentifizierungsschicht . Führt das Client-Authentifizierungsverfahren durch.
  • Die Verbindungsschicht . Verwaltet die Kommunikationskanäle nach der Authentifizierung.

Der von SSH erstellte Kanal verwendet Public-Key-Kryptografie, um den Client zu authentifizieren. Sobald die Verbindung hergestellt ist, bietet SSH eine verschlüsselte Methode zum sicheren Austausch von Informationen, unabhängig von der zugrunde liegenden Netzwerkinfrastruktur.

SSH wurde für Unix-ähnliche Betriebssysteme wie Linux, macOS und BSD entwickelt. Es funktioniert jedoch auch unter Windows.

Eine kurze SSH-Geschichte

SSH wurde 1995 von Tatu Ylönen entwickelt. Das Protokoll wurde entwickelt, um Passwort-Sniffing zu verhindern Angriffe auf die Technische Universität Helsinki. Die erste Version des Protokolls, jetzt SSH-1 genannt, wurde entwickelt, um ungesicherte Protokolle wie rsh, rlogin und Telnet zu ersetzen. Es begann als Freeware, wurde aber bald zu proprietärer Software.

Nachdem Ylönens SSH-1 weltweit zu einem beliebten Tool geworden war, stellte die Internet Engineering Task Force (IETF) eine Gruppe zusammen, deren Ziel es war, einen Nachfolger des Protokolls zu entwickeln. 2006 wurde SSH-2 zu einem neuen Standard mit Sicherheitsverbesserungen wie dem Diffie-Helman-Schlüsselaustausch.

Die Open-Source-Community hat OSSH entwickelt, eine SSH-Protokollversion, die auf Version 1.2.12 von SSH-1 basiert. Die OpenBSD-Entwickler haben später OSSH gegabelt, um OpenSSH zu erstellen, die heute weltweit beliebteste SSH-Implementierung. Ab Version 7.6 unterstützt OpenSSH nur noch SSH-2. Die Unterstützung für SSH-1 wurde eingestellt .

SSH-Terminologie

Die folgende Tabelle enthält einige Begriffe, denen Sie bei der Arbeit mit SSH begegnen können:

Begriff Erklärung
~ oder $HOME Das Home-Verzeichnis eines Benutzers auf einem Unix- oder Unix-ähnlichen System.
Authentifizierungsebene Die Schicht, die für die Durchführung der SSH-Authentifizierung verantwortlich ist.
Kunde Ein Client-Programm zum Herstellen einer Verbindung mit dem Server.
Client-Rechner Ein Computer, auf dem ein SSH-Client läuft.
Verbindungsschicht Die Schicht des SSH-Protokolls, die Kommunikationskanäle verwaltet.
Lokaler Computer Ein Computer, auf dem ein SSH-Client am Standort ausgeführt wird.
Lokaler Benutzer Ein Benutzer, der über den lokalen Computer auf SSH zugreift.
Privater Schlüssel Teil des öffentlich-privaten Schlüsselpaars für die Benutzerauthentifizierung, das auf dem lokalen Computer geheim gehalten wird.
Öffentlicher Schlüssel Teil des öffentlich-privaten Schlüsselpaars für die Benutzerauthentifizierung, das während des Authentifizierungsprozesses auf den SSH-Server kopiert wird.
Remote-Computer Ein Computer, auf dem ein SSH-Server läuft, mit dem sich SSH-Clients verbinden.
Remote-Benutzer Ein Benutzer, der über einen Remote-Computer auf SSH zugreift.
Server Ein SSH-Serverprogramm zur Kommunikation mit SSH-Clients.
Servermaschine Ein Computer, auf dem ein SSH-Server läuft.
SCP Secure Copy - ein CLI-Dienstprogramm, das SSH für die sichere Dateiübertragung verwendet.
SFTP Secure File Transport Protocol – ein Protokoll, das SSH verwendet, um Dateiübertragungen im Netzwerk zu sichern, nicht zu verwechseln mit FTPS, das TLS/SSL nutzt
Transportschicht Die Schicht des SSH-Protokolls, die die gesamte SSH-Sitzung überblickt.

SSH-Nutzung

SSH wird in Rechenzentren häufig verwendet, um eine sichere Verwaltung, Fernzugriff auf Ressourcen, Software-Patches und Updates bereitzustellen. Das Protokoll ermöglicht auch die Verwaltung geschützter Router, die Wartung der Serverhardware und die Verwaltung der Virtualisierungsplattform.

Aufgrund der Benutzerfreundlichkeit, Robustheit und zahlreichen Funktionen kann SSH in verschiedenen Szenarien eingesetzt werden.

Zu diesen Szenarien gehören:

  • Verbinden mit einem Remote-Host.
  • Sichern, Kopieren und Spiegeln von Dateien mit SFTP.
  • Mapping des Ports eines Clients auf den Port des Servers, um TCP/IP und andere Netzwerkprotokolle zu sichern.
  • X Window System vom Server an Clients weiterleiten.
  • Sensible Daten durch einen sicheren Kanal tunneln.
  • Verwenden eines virtuellen privaten Netzwerks.

SSH-Schlüssel werden häufig zur Automatisierung des Serverzugriffs mit passwortloser Anmeldung, Konfigurationsverwaltung und Sicherung verwendet.

Wie verwende ich SSH?

Die Verbindung zu einem SSH-Server erfolgt über einen SSH-Client. Bei den meisten Unix-basierten und Unix-ähnlichen Betriebssystemen sind der Daemon und der Client vorinstalliert. Auf diesen Systemen ist der SSH-Client im Terminal verfügbar.

Um über das Terminal eine Verbindung zu einem entfernten Host herzustellen, gibt der Benutzer den Befehl ssh gefolgt vom Benutzernamen und der Serveradresse oder dem Hostnamen aus:

ssh [username]@[server_ip_or_hostname]

Zum Beispiel:

Windows 10 bietet OpenSSH-Client und -Server ab Version 1709. Frühere Windows-Versionen enthielten SSH nicht als Feature, daher wurden Tools wie PuTTY verwendet, um eine SSH-Verbindung herzustellen. PuTTY ist ein SSH-Client mit einer GUI für SSH und Telnet:

Einige andere beliebte SSH-Clients für Windows sind:

  • Bitvise
  • WinSCP
  • Kitty
  • Solar-Kitt
  • SmartTTY

Wie sicher ist SSH?

Bei Verwendung mit üblichen Sicherheitsvorkehrungen gilt das SSH-Protokoll als hochsicher. Menschliche Faktoren spielen jedoch eine wichtige Rolle bei der Aufrechterhaltung der Sicherheit von SSH-Verbindungen.

Brute-Force-Angriffe auf SSH-Server sind ein häufiges Szenario. Angreifer versuchen, sich mit gemeinsamen Benutzernamen und Passwörtern mit einer großen Anzahl von SSH-Servern zu verbinden. Wenn sie Zugriff auf einen Server erhalten, nutzen sie die Rechteausweitung, um Zugriff auf das Root-Konto zu erhalten.

SSH-Schlüssel werden als sicherere Authentifizierungsmethode als Passwörter empfohlen. Eine schlechte SSH-Schlüsselverwaltung stellt jedoch immer noch ein erhebliches Risiko für Organisationen dar, deren kritische Informationen davon abhängen, die Schlüssel geheim zu halten.

Während SSH-Schlüssel einen besseren Schutz bieten, kann ihr Missbrauch böswilligen Personen Zugriff auf privilegierte Informationen verschaffen. Diese Informationen umfassen Konten und Ressourcen wie Datenbanken, Router, Zahlungssysteme usw.

Offengelegte SSH-Ports sind eine weitere potenzielle Sicherheitslücke. Einige Malware-Programme greifen IoT-Geräte mit offengelegten Ports an und nutzen sie als Hintertür zum lokalen Netzwerk.

Schließlich bedeutet eine große Anzahl von SSH-Clients auf dem Markt, dass die Sicherheit des Protokolls auch von der Sicherheit von Drittanbieter-Apps abhängt.


Linux
  1. Was macht „lc_all=c“?

  2. Ssh – Beschränken eines Ssh/scp/sftp-Benutzers auf ein Verzeichnis?

  3. Was macht ?

  4. Welches Protokoll/welcher Standard wird von Terminals verwendet?

  5. Verdächtige SSH-Befehle verstehen?

Was ist SFTP?

SSH-Befehl

Härtung der SSH-Konfiguration

SSH-Server

Was kommt in GNOME 42?

Was ist digitaler Analphabetismus?