SSH-Authentifizierung mit Public-Keys

Um Server-Systeme von entfernten Rechnern aus verwalten zu können, wurde früher auf Telnet gesetzt.

Es wurde eine Verbindung zum Zielsystem aufgebaut, das ein Telnet-Dienst Benutzer und Passwort abfragte. Anschließend konnte der entfernte Benutzer an der Text-Konsole so arbeiten, als ob er lokal angemeldet war.

Telnet birgt jedoch einen gravierenden Nachteil: alle Daten werden unverschlüsselt übertragen, weshalb es Angreifern möglich ist, diese mitzuschneiden.

Im Jahre 1995 wurde daher SSH als Secure Shell veröffentlicht. Neben verschlüsselter Übertragung aller Daten, ermöglicht SSH auch den Dateitransfer und die Tunneling von weiteren Protokollen.

Außerdem werden neben Benutzername und Passwort weitere Authentifizierungsmöglichkeiten unterstützt, wobei die populärste und sicherste Methode, die der “Public Key Authentifizierung” ist.

Dieses Verfahren setzt auf die sog. Public und Private Keys nach dem RSA-Verfahren. Die technischen Details dazu finden sich in der Wikipedia am besten erläutert:

Zusammengefasst: ein privater Schlüssel und ein dazu gehöriger, öffentlicher Schlüssel werden generiert. Der private Schlüssel ist mit einer Passphrase geschützt und darf tatsächlich nicht veröffentlicht werden.

Der öffentliche Schlüssel wird hingegen auf den Servern hinterlegt.

Anstatt beim Login nun Benutzername und Passwort an den Server zu senden, was einem Angreifer auf dem Server erlaubt, das Passwort in Erfahrung zu bringen, fragt der SSH-Client, die zum Private Key gehörige Passphrase ab. Ist diese korrekt, kann mit dem Private Key eine signierte Nachricht an den Server gesendet werden. Dieser kann die Korrektheit anhand des Public Key verifizieren und bei Erfolg den Login erlauben. Ein Angreifer hingegen erhält nur die einmalig gültige Signatur.

Somit erhöht das Public Key-Verfahren die Sicherheit, da neben dem Ziel-Benutzernamen auch der Private Key und die dazugehörige Passphrase in Erfahrung gebracht werden muss.

Praktische Tipps und Hinweise

  • SSH-Keys sollten nicht für mehrere Personen oder Personengruppen verwendet werden. Wenn pro Person (oder Server), ein SSH-Key generiert und auf den Systemen ausgerollt wird, so muss auch bei Ausscheiden dieser Person nur ein Key gelöscht werden. Bei Passwörtern oder geteilten Private Keys ist es dann notwendig, entweder alle Passwörter zu ändern oder den gesamten SSH-Key zu erneuern (bzw. die Passphrase auszutauschen). Dies betrifft alle berechtigten Personen.
  • Zur besseren Identifizierung wird zu jedem Public Key ein Kommentar hinterlegt. Wir raten dazu, hier die E-Mail-Adresse der dazugehörigen Person zu verwenden: Neben der besseren Lesbarkeit ist auch im Fehlerfall eine Kontaktaufnahme leicht möglich.

Bei Fragen steht Ihnen unser Support gerne zur Verfügung.