Bei SSH2 (Secure Shell Version 2) handelt es sich um ein Protokoll, das zur sicheren Kommunikation und Authentifizierung zwischen einem Client und einem Server verwendet wird. Das Prinzip der schlüsselbasierten Authentifizierung bei SSH2 basiert auf der Verwendung von kryptografischen Schlüsselpaaren, nämlich einem öffentlichen Schlüssel und einem privaten Schlüssel. Hier ist, wie es funktioniert:

  1. Generierung von Schlüsselpaaren: Zuerst generiert der Benutzer auf seinem Client-Computer ein Schlüsselpaar, das aus einem öffentlichen Schlüssel und einem privaten Schlüssel besteht. Dies kann beispielsweise mit dem Befehl ssh-keygen in der Befehlszeile erfolgen. Der private Schlüssel sollte streng geheim gehalten werden, während der öffentliche Schlüssel auf den SSH-Server kopiert wird.
  2. Übertragung des öffentlichen Schlüssels: Der Benutzer kopiert den öffentlichen Schlüssel auf den SSH-Server, auf den er sich später authentifizieren möchte. Dies kann normalerweise mit dem Befehl ssh-copy-id oder manuell durch Hinzufügen des öffentlichen Schlüssels zur ~/.ssh/authorized_keys-Datei auf dem Server erfolgen.
  3. Authentifizierung: Wenn der Benutzer sich jetzt über SSH auf den Server verbinden möchte, sendet der Server eine zufällige Herausforderung zurück. Der Client verschlüsselt diese Herausforderung mit seinem privaten Schlüssel und sendet die verschlüsselte Antwort an den Server.
  4. Serverüberprüfung: Der Server entschlüsselt die Antwort des Clients mithilfe des öffentlichen Schlüssels, den er für diesen Benutzer hat. Wenn die entschlüsselte Antwort mit der ursprünglichen Herausforderung übereinstimmt, ist die Authentifizierung erfolgreich, da nur der Besitzer des privaten Schlüssels die richtige Antwort bereitstellen kann.
  5. Zugriff gewähren: Nach erfolgreicher Authentifizierung gewährt der Server dem Benutzer Zugriff auf das System.

Der Vorteil der schlüsselbasierten Authentifizierung bei SSH2 besteht darin, dass sie sicherer ist als die herkömmliche Passwort-Authentifizierung, da der private Schlüssel schwer zu erraten ist und nicht über das Netzwerk übertragen wird. Außerdem ermöglicht sie automatische Anmeldungen ohne die Eingabe eines Passworts, was die Benutzerfreundlichkeit verbessert. Dies ist besonders nützlich in Umgebungen, in denen die IT-Sicherheit eine hohe Priorität hat.

Putty (Version 0.79, 11/2023)

Vorbereitung

Wir generieren ein Schlüsselpaar mit dem Tool PuttyGen. Bei RSA sollte mindestens eine Schlüssellänge von 2048 Bit gewählt werden. Das Schlüsselpaar besteht aus einem öffentlichen und einem privaten Teil.
Der öffentliche Schlüssel wird in den SSH-Server auf User-Ebene kopiert, der private Schlüssel bleibt auf dem Arbeitsplatz Rechner. Es ist zu beachten, dass bei Diebstahl der Daten auf dem Desktop System dieser private Schlüssel von unbefugten Dritten verwendet werden könnte. Daher solle dieser private Schlüssel mit einer sicheren Passphrase geschützt werden.
Im Folgenden zeige ich Ihnen die Schritte in Screenhots:

Kopieren des öffentlichen Schlüsselt in die Zwischenablage.

Open a Putty session to the SSH Server, jump to the directory .ssh. If not exists, create it.

# cd .ssh
# vi authorized_keys 

Insert the key by drop (shift + mouse-right) into that file.

Ensure that you insert all characters. Save the file 😡

Nun speichern wir den privaten Schlüssel in einen lokalen Ordner und konfigurieren die PuTty Session:

Wir benötigen jetzt den usernamen@ip-adresse

Jetzt wird noch der private Schlüssel zugewiesen:

Speicher Sie nun diese Session.

Ein Klick auf Open sollte nun ein Login ohne Passwort ermöglichen.