Public Keys & SFTP


Inhalt


SSH-Authentifizierung mit Public Keys

Um Serversysteme 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 Tunnelung 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.

Generierung von SSH-Public-Keys mittels PuTTYgen

PuTTYgen erzeugt Schlüssel, die in PuTTY oder anderen kompatiblen Anwendungen (wie WinSCP) verwendet werden können, um sich mittels Public-Key-Verfahren an einem SSH-Server anzumelden.

Unter Linux und Mac gibt es andere Möglichkeiten, weshalb PuTTYgen nur unter Windows verwendet werden muss.

Public-Key auf Server hinterlegen

  • Starten Sie PuTTYgen und betätigen Sie den Button “Load”.
    pg06
  • Wählen Sie die entsprechende Schlüsseldatei aus und bestätigen Sie Ihre Wahl mit dem Button “Öffnen”. Um unser Beispiel zu vereinfachen, haben wir unsere Datei namentlich entsprechend gekennzeichnet.
    pg07
  • Sie werden nun aufgefordert das passende Passwort für Ihren Schlüssel einzugeben. Bestätigen Sie dann mit “Ok”.
    pg08
  • Das nächste Fenster zeigt Ihnen oberhalb den benötigten Public-Key (markierter Bereich in der Grafik), den Sie sich in die Zwischenablage kopieren sollten.
    pg09
  • In einem Editor Ihrer Wahl (z.B. note++) erstellen Sie nun ein neues Text-Dokument. Fügen Sie den soeben kopierten Inhalt des Public-Keys ein und speichern Sie die Datei zur Sicherheit lokal ab.
  • Nun stellen Sie per FTP eine Verbindung zu Ihrem Hosting-Account her.
  • Wechseln Sie in den Ordner .ssh, in welchem Sie die Datei authorized_keys finden.
  • Bearbeiten/Öffnen Sie diese mittels Rechtsklick.
  • Fügen Sie Ihren kopierten Inhalt des Public-Keys in die Datei ein.
  • Speichern Sie die Datei.

Nun haben Sie Ihren Public-Key zur weiteren Verwendung korrekt in Ihrem Hosting-Account hinterlegt.

Bei Fragen steht Ihnen unser Support zur Verfügung.

SFTP

SFTP basiert, wie der Name suggerieren könnte, nicht auf FTP, sondern verwendet das sog. SSH-Protokoll als Grundlage.

SSH kümmert sich um die Authentifizierung sowie um die Verschlüsselung des Transportweges, über den dann die effektiven Dateien transferiert werden.

Im Gegensatz zu FTP ist der Zugriff nur über den tatsächlichen Hosting-Server möglich. Auch steht SFTP nur für sog. Haupt-FTP-Accounts (entsprechen dem Vertragsnamen) zur Verfügung.

  • Hostname: der Hosting-Server, auf dem sich Ihr Account befindet. putty_02
  • Port: 22