Das SSH (Secure Shell) ist ein Netzwerkprotokoll, das eine verschlüsselte, authentifizierte Kommunikation zwischen zwei Systemen herstellt. Es wurde als Ersatz für unverschlüsselte Protokolle wie Telnet oder rlogin entwickelt und ist heute der Standardweg, um auf entfernte Server administrativ zuzugreifen.

SSH läuft typischerweise über TCP-Port 22 und wird sowohl interaktiv (Login auf eine Shell) als auch nicht-interaktiv (Skript-Aufrufe, Dateitransfer, Tunnel) genutzt.

Authentifizierungsverfahren

SSH unterstützt mehrere Methoden, um Nutzer zu authentifizieren:

  • Passwort — einfach, aber für exponierte Server nicht empfohlen.
  • Public-Key — der Nutzer hinterlegt seinen öffentlichen Schlüssel auf dem Server und weist sich beim Login mit dem zugehörigen privaten Schlüssel aus. Der private Schlüssel verlässt den Client nie.
  • Zertifikate — eine signierende Stelle stellt zeitlich begrenzte Zertifikate aus, die den öffentlichen Schlüssel beglaubigen. In größeren Umgebungen ersetzt das die manuelle Pflege einzelner authorized_keys-Dateien.
  • Mehrfaktor — z. B. Public-Key in Verbindung mit Einmalpasswort.

Funktionen über die reine Shell hinaus

SSH bietet mehr als nur einen Login:

  • SCP / SFTP — Dateitransfer auf Basis derselben Verbindung.
  • Port-Forwarding — leitet TCP-Ports durch den verschlüsselten Tunnel weiter, lokal oder remote.
  • Dynamic Forwarding — eröffnet einen SOCKS-Proxy über die SSH-Verbindung.
  • Agent Forwarding — erlaubt es, sich von einem entfernten System aus mit dem eigenen Schlüssel weiterzuverbinden, ohne ihn zu kopieren.

Schlüssel und Fingerprint

Beim ersten Verbindungsaufbau zeigt der Server seinen Host-Key in Form eines Fingerprints. Dieser sollte einmalig auf einem vertrauenswürdigen Weg geprüft und danach in der known_hosts-Datei festgehalten werden — so erkennt der Client zukünftig, ob er mit dem richtigen Server spricht oder ob jemand dazwischen sitzt.

/ Weiter

Zurück zu IT

Zur Übersicht