So nutzen Sie SSH-Keys für Ihre Netzwerkverbindung

Mithilfe des Netzwerkprotokolls SSH können Sie eine sichere und verschlüsselte Netzwerkverbindung zu einem entfernten Gerät wie z. B. einem Server herstellen. Mit einer solchen SSH-Verbindung warten Sie den Server von Ihrem lokalen Computer aus oder bedienen ihn per Kommandozeile. Abhängig von der genutzten Version des Protokolls kommen dabei verschiedene Verschlüsselungsalgorithmen zum Einsatz – SSH-2 greift beispielsweise standardmäßig auf AES zurück. Der Verschlüsselung der Verbindung muss allerdings zunächst eine erfolgreiche Authentifizierung vorausgehen. Während der Server sich gegenüber dem Client mit einem Sicherheitszertifikat identifiziert, gibt es verschiedene Varianten zur Anmeldung des Clients auf dem Server. Neben der bekannten klassischen Variante mit Benutzername und Passwort können Sie unter anderem auch Schlüsselpaare nutzen, die aus einem privaten und einem öffentlichen SSH-Schlüssel bestehen.

Public-Key-Authentifizierung

Die Authentifizierungsmethode mit SSH-Keys wird auch als Public-Key-Authentifizierung bezeichnet und birgt einige Vorteile zur standardmäßigen Passwort-Anmeldung. So wird nicht das verwendete Passwort bzw. dessen Hash-Wert auf dem Server gespeichert, sondern nur der öffentliche Schlüssel. Der private SSH-Key bleibt auf dem eigenen Rechner – und damit geheim. Zusätzlich können Sie ihn mit einer Kennung verschlüsseln. Der öffentliche Schlüssel kann Signaturen, die durch den privaten SSH-Schlüssel erzeugt wurden, verifizieren und ermöglicht dadurch die automatische Anmeldung auf dem Server. Auch wenn Unbefugte an den öffentlichen Key gelangen sollten, ist es für sie nahezu unmöglich, aus diesem den passenden privaten zu berechnen. Wenn Sie bei Ihrer SSH-Verbindung also auf Schlüsselpaare anstatt eines einfachen Passworts setzen, ersparen Sie sich den Anmeldedialog und sorgen gleichzeitig für eine noch größere Sicherheit.

Tipp

Verwendung eines SSH-Keys mit GitHub, so geht's! 

Auf SSH-Keys umstellen – so funktioniert’s

Um die Vorteile von SSH-Verbindungen zu nutzen, benötigen Sie eines der verfügbaren SSH-Pakete wie OpenSSH für Unix-, WinSCP für Windows- oder PuTTY für Unix- und Windows-Betriebssysteme. Neben dem SSH-Protokoll implementieren die Pakete u. a. Anwendungen, mit deren Hilfe Sie SSH-Schlüssel generieren können. In den folgenden Anleitungen erklären wir Schritt für Schritt, wie Sie die Verwendung der Schlüsselpaare mit OpenSSH und PuTTY einrichten können.

SSH-Schlüssel mit OpenSSH konfigurieren

  1. Zu Beginn gilt es, die SSH-Schlüssel zu generieren, wozu Sie folgenden Befehl benötigen:

    ssh-keygen -t rsa -b 4096

    Durch die optionalen Parameter bestimmen Sie die Verschlüsselungsart (-t), in diesem Fall RSA, und die Bit-Schlüssellänge (-b), wobei 4096 den Maximalwert darstellt. Nutzen Sie diese Spezifizierung nicht, werden die Standardeinstellungen für die Generierung verwendet.
     
  2. Im folgenden Dialog können Sie das Verzeichnis sehen bzw. verändern, in das die SSH-Keys hinterlegt werden sollen („Enter file in which to save the key“), und haben zudem die Option, eine Passphrase für den privaten Key zu definieren („Enter passphrase“). Möchten Sie das Standardverzeichnis verwenden und keine Kennung für Ihren Schlüssel einrichten, können Sie die Felder freilassen und mit der Eingabetaste überspringen.
     
  3. Beide SSH-Schlüssel sind nun im zuvor genannten bzw. gewählten Verzeichnis in unterschiedlichen Dateien gespeichert. Die Datei id_rsa.pub enthält den öffentlichen Schlüssel, der nun im Unterordner .ssh in der Datei authorized_keys auf dem Server hinterlegt werden muss. Dazu kopieren Sie zunächst den Key in das Home-Verzeichnis des jeweiligen Users auf dem Server:

     scp ~/.ssh/id_rsa.pub USER@HOST.de
     
  4. Loggen Sie sich auf dem Server ein und kopieren Sie den öffentlichen SSH-Key in den richtigen Ordner:

    ssh USER@HOST.de

    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
     
  5. Nun sollten die Schlüsselpaare sowie, falls definiert, deren Passphrase beim Aufbau der SSH-Verbindung automatisch verwendet werden. Wenn nicht, überprüfen Sie, ob die Rechte des Ordners .ssh und der Datei authorized_keys richtig gesetzt sind.
     
  6. Da die Public-Key-Authentifizierung die normale Passwort-Authentifizierung ersetzt, können Sie das Standardverfahren in der SSH-Konfigurationsdatei /etc/ssh/sshd_config (oder auch direkt unter /etc/, z. B. in Cygwin) ausschalten, indem Sie die Zeile „PasswordAuthentication yes“ in „PasswordAuthentication no“ umändern und den Server anschließend neustarten.

SSH-Schlüssel generieren mit dem PuTTY Key Generator

  1. Wenn Sie PuTTY nutzen, um eine SSH-Verbindung aufzubauen, haben Sie mit PuTTYgen auch standardmäßig das passende Werkzeug parat, um Schlüsselpaare zu generieren. Sie finden den PuTTY Key Generator im gleichen Verzeichnis, in das Sie PuTTY installiert bzw. entpackt haben. Fehlt das Tool, laden Sie es einfach auf der PuTTY Download Page herunter.
     
  2. Nach dem Start wählen Sie unter „Parameters“ den Verschlüsselungstyp – für SSH-2 können Sie sich zwischen RSA und DAS entscheiden. Unter „Number of bits in a generated key“ definieren Sie die gewünschte Schlüssellänge.
     
  3. Klicken Sie anschließend auf „Generate“ und bewegen die Maus im freien Bereich des Dialogfensters hin und her, um die Individualität des Codes zu gewährleisten.
     
  4. Ist die Generierung abgeschlossen, versehen Sie das erzeugte Schlüsselpaar optional mit einem Kommentar und einer Passphrase.
     
  5. Über „Save private key“ und „Save public key“ speichern Sie die beiden SSH-Keys.
     
  6. Um den öffentlichen Key nun auf den Server zu übertragen, verbinden Sie sich über PuTTY mit diesem und kopieren anschließend den Code aus der Zwischenablage („Public key for pasting into OpenSSH authorized_keys file“) in die authorized_keys-Datei.
     
  7. Im letzten Schritt tragen Sie im PuTTY-Client den privaten SSH-Schlüssel ein. Dazu öffnen Sie das Konfigurationsmenü und wählen dort unter „Category“ > „Connection“ > „SSH“ > „Auth“ > „Private key file for authentication“ die Datei des privaten Keys aus.
Tipp

Sie möchten maximale Sicherheit für Ihre Website? Erfahren Sie hier mehr zu den SSL-Zertifikaten von IONOS und wie diese das Vertrauen in Ihre Seite erhöhen.