Secure Shell

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Die Secure Shell / SSH ist ein Netzwerkprotokoll, mit dem man sich über eine verschlüsselte Rechnernetz-Verbindung auf einem entfernten Rechner anmelden und dort Programme ausführen kann. Es ist damit eine sichere Alternative zum Konsolenzugang über telnet und gilt als de-facto-Standard für die Remote-Verwaltung von Unix-Systemen. Die Client/Server-Architektur von SSH basiert auf dem Gespann TCP/IP. Die IANA hat dem Protokoll den TCP-Port 22 zugeordnet.

Das bekannteste Programm zur Nutzung von SSH unter Linux heisst ssh aus dem Openssh-Paket. Daneben gibt es inzwischen auch webbasierte SSH-Clients, darunter Anyterm und Ajaxterm.

Ein SSH-Server für Microsoft Windows ist in der Programmsammlung Cygwin enthalten, die Windows zugleich um eine Unix-Umgebung und viele Befehlszeilenwerzeuge erweitert. Als SSH-Client ist Putty gut geeignet.

Protokollversionen

Die Secure Shell stellt zur Zeit die Protokollversionen 1.3, 1.5 und 2 bereit. Gegenüber der Version 2 fallen die Möglichkeiten der Reihe 1 sehr beschränkt aus.

Secure Shell Version 1 / SSH1 Secure Shell Version 2 / SSH2
Verschlüsselungsalgorithmen Dürftiges Angebot (u. a. das unsichere DES oder das sichere aber langsame 3DES, sowie das schnelle und sichere Blowfish). Lücken im Protokoll ermöglichen theoretisch ein Knacken des Protokolls. Zusätzlich AES und weitere.
Geschwindigkeit deutlich langsamer
Aushandeln des Schlüssels Clientseitig erzeugte Schlüssel (engl. keys). Der SSH-Server sendet seinen öffentlichen Schlüssel an den SSH-Client. Dieser erzeugt eine zufällige 156 Bit lange Zahl, verschlüsselt diese mit dem öffentlichen Schlüssel und sendet das Ergebnis an den SSH-Server. Fortan läuft der Datenstrom mit dieser übermittelten Zufallszahl verschlüsselt ab. Schneidet ein Lauscher diese Kommunikation mit, befindet er sich im Besitz des (verschlüsselten) Schlüssels. Mittels Ausprobieren aller Möglichkeiten (Brute Force-Methode) kann es gelingen, den Schlüssel zu ermitteln - im Schnitt dauert das allerdings mehrere Jahre... Einsatz des Diffi-Hellman-Verfahrens, bei dem der eigentliche Schlüssel nie hin und her geht. SSH-Server und -Client übertragen lediglich Daten, die es den Verbindungspartnern ermöglichen, unabhängig voneinander den gleichen Schlüssel zu errechnen. Einem Lauscher nützen diese Daten nichts, da ihm die Werte zum Berechnen des Schlüssels fehlen. Dieses Verfahren zur Schlüsselgenerierung ist wesentlich sicherer, da keiner der beiden Verbindungspartner den Schlüssel alleine bestimmt.
Datenintegritätsprüfung CRC-Verfahren (Cyclic Redundancy Check), welches als betagt und unzuverlässig gilt. Kryptologische Hashes (Message Authentication Code-Verfahren)
Multiplexing
(dabei übertragen beide Seiten die Daten scheinbar gleichzeitig)
Läuft besser.
Weitere Funktionen Datenübertragung per SFTP.

Tunneln: SSH über HTTP

Auf dem Webrechner läuft ein Werkzeug, das SSH über HTTP verlegt. Solche Remote-Werkzeuge gibt es jede Menge:

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wikipedia ger Secure Shellwbm Enzyklopädischer Artikel
Red Pill eng The biggest Free Shell list on the netwbm