Tags: Remote-Verwaltung, SSH
Die bei SSH standardmäßig aktive Passwortabfrage ist nur eine Möglichkeit der Authentifizierung. Sicherer ist die Identifikation über asymmetrische Schlüssel, die Public-Key-Authentifizierung. Bei Putty dient das Tool PuTTY Key Generator (puttygen.exe anstelle von ssh-keygen) zum Erzeugen von RSA- (Default) oder DSA-Schlüsselpaaren.
Das Tool findet sich zwar auf der Putty-Download-Seite, aber wenn zuvor das vollständig Zip-Archiv heruntergeladen oder den exe-Installer verwendet hat, dann ist puttygen bereits im Windows-Startmenü unter Putty zu finden. Zum Erzeugen eines RSA-Schlüsselpaares genügt ein Klick auf die Schaltfläche Generate. Wer DSA- oder SSH1-RSA-Schlüssel benötigt, kann den entsprechende Typ unten im Dialog markieren.
Schlüsselpaar erzeugen und speichern
Für den notwendigen Zufallsfaktor sorgt man selbst, indem man während der Schlüssel-Erzeugung im freien Bereich des Dialogfensters die Maus hin- und her bewegt. Anschließend gibt man bei Key passphrase das gewünschte Schlüssel-Mantra ein.
Zum Speichern des Public- und Private-Key auf dem Client stehen die beiden gleichnamigen Schaltflächen zur Verfügung. Das Speichern des Public Key ist nicht zwingend, weil der sich jederzeit aus dem privaten Schlüssel errechnen lässt.
Name und Pfad sind im Windows-Dialog frei wählbar, allerdings hat sich für Putty-Schlüssel die Endung .ppk etabliert, um auf das vom Linux-Standard abweichende Format hinzuweisen. Im Menü Conversions ist es aber möglich, vorhandene OpenSSH-Keys zu importieren (bzw. Putty-Keys zu exportieren), weil Putty OpenSSH-Keys nicht akzeptiert.
Public Key auf den Server übertragen
Für das Übertragen des Public Keys auf den Server ist es nützlich, diesen mit der Maus im Schlüsselfeld vollständig zu markieren und mit Strg + C einfach in die Zwischenablage zu kopieren.
Loggt man sich dann mit Hilfe von Putty noch einmal konventionell (d. h. mit Benutzername und Passwort) auf dem entfernten Server ein, kann man die dortige Datei /home/$User/.ssh/authorized_keys mit einem Editor seiner Wahl bearbeiten und den Key einfach aus der Zwischenablage einfügen, was deutlich eleganter ist, als ein manuelles Übertragen via psftp.
Private Key in Putty hinterlegen
Um beim nächsten Login die Public-Key-Authentifizierung zu verwenden, trägt man wiederum am Client auf der Putty-Startseite im Bereich Sessions die Adresse des gewünschten Hosts ein, klickt dann im hierarchischen Category-Menü auf SSH / Auth und trägt im Feld Private key file for authentication den Dateinamen seines Private-Keys ein. Das klappt am schnellsten, indem man auf „Browse“ klickt und das entsprechende File im Dateiselektor wählt.
Selbstverständlich lassen sich die Anmeldedaten für jede einzelne Session auch als Profil speichern. Der Ablauf des Authentifizierungs-Handshakes ist dann wie folgt: Baut man eine Verbindung zum entfernten Server auf, verlangt der nach einem Beweis, dass der angegebene Benutzername einen in der dortigen Datei authorized_keys angegebenen öffentlichen Schlüssel besitzt.
Daher fordert SSH zur Eingabe der Passphrase auf, um den in der lokalen Datei id_rsa.ppk gespeicherten privaten Schlüssels zu aktivieren. Erst wenn beide Schlüssel zusammenpassen kann der entfernte Server davon ausgehen, dass man auch derjenige ist, der den Zugang begehrt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
- PowerShell 7.3: JEA über SSH, Cmdlet für Setup, erweiterte ARM-Unterstützung
- SSH-Remoting in PowerShell Core mit Public-Key-Authentifizierung nutzen
- Remote-Management: PowerShell Direct oder PS-Session über SSH
- ESXi-Konsole (Direct Console User Interface, DCUI) über SSH öffnen
- MobaXterm: X-Server, SSH, bash und Unix-Tools für Windows
Weitere Links