Zur sicheren Administration von Linux-System gehört, dass man SSH-Anmeldungen per Passwort vermeidet und stattdessen eine Anmeldung mit RSA Schlüsseln vornimmt.
Der de-facto Standard für SSH-Verbindungen auf Windows ist PuTTY. Hier ist eine Anmeldung mit RSA Schlüsseln zwar implementiert, jedoch können lediglich Schlüssel-Dateien verwendet werden, was den Nachteil hat, dass diese nahezu ungeschützt im Dateisystem liegen.
Eine tolle Option wäre doch sicherlich, RSA-Schlüssel aus der Windows-Welt, und vielleicht sogar gespeichert auf einer physischen oder virtuellen Smartcard einzusetzen.
Bewusst wird hier in der Terminologie zwischen Schlüsseln und Zertifikaten unterschieden. Der SSH-Server auf dem Linux-System überprüft das Zertifikat nicht, da der Vertrauensstatus direkt auf den öffentlichen Schlüssel abgebildet ist. Das hier verwendete Zertifikat ist also eher als ein Vehikel zu verstehen, die Windows-Bordmittel für die SSH-Anmeldung per öffentlichem Schlüssel verwenden zu können.
PuTTY selbst bietet keine Unterstützung für die Verwendung von Zertifikaten für die SSH-Anmeldung. Es gibt mit PuTTY-CAC jedoch einen quelloffenen Fork, welcher diese Funktionalität implementiert hat.
PuTTY-CAC fügt unter Connection – SSH eine neue Option "Certificate" hinzu. Hier kann man die Option "Set CAPI Cert" auswählen, um ein Zertifikat auf dem Windows-Zertifikatspeicher für die SSH-Anmeldung festzulegen.
Nachdem die Auswahl erfolgt ist, muss der dazugehörige öffentliche Schlüssel noch dem jeweiligen System bekannt gemacht werden. Hierzu gibt es die Option"Copy to Clipboard", welche die notwendige Information in die Windows-Zwischenablage kopiert.
Auf dem Zielsystem meldet man sich ein letztes Mal auf dem klassischen Weg an und bearbeitet die Datei für die autorisierten Schlüssel. Diese können sein:
- ~/.ssh/authorized_keys2 (Debian/Ubuntu)
- /etc/dropbear/authorized_keys (OpenWRT)
Nachdem der neue Wert eingetragen wurde und die Datei gespeichert wurde, kann nun eine Anmeldung mit dem zuvor gewählten Zertifikat erfolgen.
Die populäre Remote Desktop Anwendung mRemoteNG bringt eine eigene Kopie von PuTTY mit, kann jedoch in den Optionen unter "Erweitert" angewiesen werden, die PuTTY-CAC Datei zu verwenden.
Weiterführende Links:
Externe Quellen
- NoMoreFood / putty-cac (GitHub)
- PuTTY-CAC