Was ist SSH und wie nutzt du es sicher?

Autor: Veröffentlicht

Kurz erklärt: SSH (Secure Shell) ist ein Protokoll, also ein Regelwerk für die Kommunikation, mit dem du dich über ein Netzwerk sicher mit einem anderen Computer verbinden und dort Befehle ausführen kannst. Es verschlüsselt die übertragenen Daten und eignet sich deshalb auch zur Fernverwaltung eines Servers über das Internet. Für die Verbindung brauchst du ein Programm, das SSH unterstützt, die Serveradresse, ein Benutzerkonto und ein Passwort oder einen entsprechend eingerichteten Schlüssel.

Wofür wird SSH verwendet?

Meist dient SSH dazu, über ein Terminal, also eine textbasierte Oberfläche, auf einem entfernten Computer zu arbeiten. Nach der Anmeldung gibst du Befehle ein, die auf dem Server ausgeführt werden, nicht auf deinem Laptop. So kannst du Fehlerprotokolle prüfen, Software aktualisieren und die Konfiguration von Diensten ändern — im Rahmen der Berechtigungen deines Kontos.

Ein Beispiel: Die Website auf deinem VPS, einem virtuellen privaten Server, funktioniert nicht mehr. Über SSH kannst du prüfen, ob der Speicherplatz knapp ist, Fehlermeldungen lesen und einen Dienst neu starten, sofern du die entsprechenden Berechtigungen hast. Eine grafische Desktop-Oberfläche auf dem Server brauchst du dafür nicht.

SSH hat auch weitere Einsatzbereiche:

Wie funktioniert eine verschlüsselte SSH-Verbindung?

Auf der einen Seite läuft der SSH-Client, also das Programm, das die Verbindung aufbaut. Auf der anderen Seite läuft der SSH-Server, ein Dienst, der Verbindungen entgegennimmt. Eine verbreitete Implementierung beider Komponenten ist OpenSSH. Standardmäßig nimmt der Dienst Verbindungen auf TCP-Port 22 entgegen. Ein Port ist eine Nummer, die einen Dienst auf einem bestimmten Gerät bezeichnet.

Beim Verbindungsaufbau stimmen Client und Server die Sicherheitsverfahren ab und richten einen verschlüsselten Kanal ein. Der Hostschlüssel, der den Server identifiziert, ermöglicht dem Client zu prüfen, mit welchem Rechner er kommuniziert. Anschließend prüft der Server die Identität des Benutzers, beispielsweise anhand eines Passworts oder eines Benutzerschlüssels.

Die Verschlüsselung schützt den Inhalt von Befehlen, deren Ausgaben und übertragenen Daten während der Übertragung vor dem Mitlesen. Sie schützt jedoch nicht vor jeder Bedrohung: Ein infizierter Laptop kann Daten vor der Verschlüsselung abfangen, und ein kompromittierter Server kann sie nach der Entschlüsselung offenlegen. SSH verbirgt auch nicht, dass die Geräte miteinander kommunizieren.

Wie verbindest du dich per SSH mit einem Server?

Prüfe zunächst im Kundenbereich oder in der Dokumentation deines Hostinganbieters, ob dein Paket SSH-Zugriff bietet. Bei Shared Hosting kann diese Funktion oder der Umfang der verfügbaren Befehle eingeschränkt sein. Überprüfe die Hostadresse, den Benutzernamen, den Port und die erlaubte Anmeldemethode — diese Angaben solltest du nicht aus der Websiteadresse ableiten und erraten.

Unter Linux und macOS ist ein SSH-Client meist im Terminal verfügbar. Unter Windows kannst du den OpenSSH-Client verwenden, sofern er installiert ist, zum Beispiel in PowerShell. Der grundlegende Befehl lautet:

ssh anna (at) serwer.example

Ersetze anna durch den Namen deines Benutzerkontos und server.example durch die tatsächliche Serveradresse oder dessen IP-Adresse. Gibt der Anbieter einen anderen Port an, zum Beispiel 2222, verwende:

ssh -p 2222 anna (at) serwer.example

Bei der ersten Verbindung zeigt das Programm normalerweise den Fingerabdruck des Hostschlüssels an, einen Prüfwert, mit dem sich der Serverschlüssel erkennen lässt. Vergleiche ihn mit einer Angabe aus einer vertrauenswürdigen Quelle, etwa dem Kundenbereich des Anbieters oder einer Auskunft des Administrators über einen unabhängigen Kommunikationsweg. Akzeptiere ihn nicht automatisch, nur weil das Programm um Zustimmung bittet.

Bei der Anmeldung mit Passwort zeigt das Terminal üblicherweise weder die eingegebenen Zeichen noch Sternchen an — das ist normal. Nach der Anmeldung kannst du mit whoami den Namen des aktuellen Benutzers prüfen und mit pwd das aktuelle Verzeichnis anzeigen. Der Befehl exit beendet die Sitzung.

Passwort oder SSH-Schlüssel — was solltest du wählen?

Die Anmeldung mit Passwort ist einfach. Ein über das Internet erreichbarer Dienst kann jedoch zum Ziel automatisierter Versuche werden, Passwörter zu erraten. Für die regelmäßige Administration ist ein SSH-Schlüssel eine gute Wahl. Du musst aber weiterhin den Computer schützen, auf dem du ihn speicherst.

Ein SSH-Schlüssel besteht aus zwei zusammengehörenden Teilen: Den öffentlichen Schlüssel hinterlegst du auf dem Server, während der private Schlüssel auf deinem Gerät bleibt. Bei der Anmeldung weist der Client nach, dass er den privaten Schlüssel besitzt, ohne ihn an den Server zu senden. Verwechsle dieses Schlüsselpaar nicht mit dem Hostschlüssel, der den Server selbst identifiziert.

In OpenSSH kannst du mit folgendem Befehl ein Schlüsselpaar erzeugen:

ssh-keygen -t ed25519

Lege ein Passwort zum Schutz des privaten Schlüssels fest. Überschreibe keinen vorhandenen Schlüssel, ohne zuvor zu prüfen, wofür er verwendet wird. Die Datei mit der Endung .pub enthält den öffentlichen Schlüssel; hinterlege ihn gemäß der Anleitung des Anbieters. Sende die Datei mit dem privaten Schlüssel weder an den Administrator noch an den technischen Support.

Wie vermeidest du Fehler und den Verlust des Zugriffs?

Eine Warnung über einen geänderten Hostschlüssel kann durch eine Neuinstallation des Servers verursacht werden. Sie kann aber auch bedeuten, dass du dich mit einem anderen Rechner verbindest oder jemand versucht, die Kommunikation abzufangen. Kläre die Ursache zuerst mit dem Administrator. Wenn du den gespeicherten Schlüssel nur löschst, damit die Meldung verschwindet, umgehst du eine wichtige Sicherheitsprüfung.

Verwende für die tägliche Arbeit ein Konto mit eingeschränkten Berechtigungen statt des Kontos root, das die vollständige Kontrolle über das System hat. Halte die SSH-Software aktuell und führe keine unbekannten Befehle aus, ohne ihre Auswirkungen zu verstehen. Eine Änderung des Ports allein ersetzt keine angemessene Authentifizierung.

Wenn du die Anmeldung mit Passwort deaktivieren möchtest, teste zuerst den Zugriff per Schlüssel in einer zweiten Sitzung und lasse die erste geöffnet. Kläre vor einer Konfigurationsänderung außerdem, wie du die Rettungskonsole des Anbieters nutzen kannst — so verlierst du bei einem Fehler nicht den Zugang zum Server.

Siehe auch: Was ist CDN?

Lesen Sie auch

Wie PHP-FPM PHP-Anfragen verarbeitet, sich vom Webserver unterscheidet und wie du Prozesse an Last und Hosting-Ressourcen anpasst.
BIND ist offene DNS-Serversoftware. Erfahre, welche Aufgaben sie übernimmt und wann sich der Betrieb eines eigenen Servers lohnt.
Was Polens REGON-Register und seine Kennnummer bedeuten, wie sie sich von NIP und KRS unterscheiden und wie Sie Unternehmensdaten prüfen.