Eine Anmeldung an einem entfernten Server mit SSH ist im Linux-Umfeld zur Administration keine große Sache und schnell eingerichtet. Als Besitzer eines YubiKeys kann man das alles noch ein wenig effizienter und eleganter lösen.
Ein Windows-System ist dafür no anzupassen. Im Standard kann das Betriebssystem die Daten des YubiKeys noch nicht auslesen und für die Anmeldung verwenden.
Die Voraussetzungen sind
- der YubiKey muss dazu am Client angeschlossen sein
- der Client muss den GnuPG-Schlüssel in SSH übersetzen
- der Client muss die Erlaubnis haben sich mit dem Server zu verbinden
- der YubiKey-PIN muss beim Aufbau der SSH-Verbindung eingegeben werden
Der Vorteil ist ganz klar, der erforderliche SSH-Schlüssel wird NICHT auf dem Client gespeichert, sondern es wird der GnuPG-Authentifizierungsschlüssel genutzt, der sicher durch Passwort geschützt auf dem YubiKey verbleibt.
Das Ganze ist keine große Sache und auch relativ einfach umgesetzt und konfiguriert.
Nach dem 10. Beitrag der YubiKey-Serie ist mittlerweile ein Schlüsselpaar vorhanden, ein YubiKey konfiguriert und der Linux-Server so eingestellt, dass man sich nur noch mit einem Hardwaretoken per SSH anmelden kann.
Jetzt fehlt noch die Konfiguration, dass der SSH-Zugriff von einem Windows-System (= Client) aus auf den entfernten Server funktioniert.
Ein paar Einstellungen sind erforderlich, da Windows die Anmeldung mit PuTTY ein wenig anders handhabt als Linux.
Windows – PuTTY mit YubiKey verbinden
Zuerst werden ein paar Zusatzprogramme benötigt, damit ihr euch mit dem YubiKey per SSH an Servern anmelden könnt.
Benötigte Software
- GPG4win – https://www.gpg4win.org/
- Git – https://git-scm.com/download/win
- PuTTY – https://www.putty.org/
Bei der Installation von „gpg4win“ werden nicht alle Komponenten benötigt.
Achtet darauf, dass nur die folgenden drei installiert werden
- Kleopatra
- GpgOL
- GpgEX
Nach der Installation könnt ihr die Eingabeaufforderung öffnen und wie bei Ubuntu die vorhandene GPG-Version abfragen.
gpg --version

Wichtig ist dabei der Installationspfad. (siehe Markierung im Screenshot)
Die Datei „gpg-agent.conf ist im Verzeichnis
C:\Users\destroy\GnuPG\
oder
C:\Users\benutzername\AppData\Roaming\
zu finden.
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Ist die Datei noch nicht vorhanden, dann könnt ihr diese sehr einfach mit einem Editor anlegen.
Dort tragt ihr die Zeile im Abschnitt „###+++— GPGConf —+++###“ ein.
enable-putty-support
Der gesamte Inhalt der Datei sieht dann in etwa so aus:
enable-putty-support
enable-ssh-support
use-standard-socket
default-cache-ttl 600
max-cache-ttl 7200

Anschließend startet ihr den gpg-Daemon neu.
C:\gpg-connect-agent killagent /bye
C:\>gpg-connect-agent /bye
Nun ist noch eine Verknüpfung zwischen Git Bash und GPGzu erstellen. Dazu öffnet ihr an beliebiger Stelle „Git Bash“ über das Kontextmenü.
$ eval $(/usr/bin/ssh-pageant -r -a "/tmp/ssh-pageant-$USERNAME")
ssh-pageant pid 16804

Beim Starten ohne „eval“ werden einige Informationen mehr ausgegeben.
$ /usr/bin/ssh-pageant -r -a "/tmp/.ssh-pageant-$USERNAME"
SSH_AUTH_SOCK='/tmp/.ssh-pageant-user'; export SSH_AUTH_SOCK;
SSH_PAGEANT_PID=16804; export SSH_PAGEANT_PID;
echo ssh-pageant pid 16804
Anschließend muss noch ein Eintrag in der „.bashrc“ erfolgen, damit der ssh-pageant automatisch startet.
export LC_ALL="de_DE.UTF-8"
alias gp='git fetch -p && git pull'
alias gpgw='winpty /c/devtools/gnupg/bin/gpg'
alias gpg2='gpgw'
eval $(/usr/bin/ssh-pageant -r -a "/tmp/.ssh-pageant-$USERNAME")
export SSH_PAGEANT_PID=$(ps | grep $(which ssh-pageant) | head -n 1 | awk '{print $1}')

Die Anmeldung mit dem YubiKey von einem Windows-System funktioniert nur, wenn „Kleopatra“ gestartet wurde und im Hintergrund läuft.
Anschließend kann per „Git Bash“ oder „PuTTY“ eine SSH-Sitzung geöffnet werden. Es erscheint dann ein Eingabefeld für die PIN des YubiKeys.
Kontrolliert in den Einstellungen von Kleopatra, dass die Einstellungen korrekt gesetzt sind.


Damit kann auch unter Windows der YubiKey verwendet werden und eine Anmeldung via PuTTY am Linux-Server erfolgen.
Gib mir gerne einen Kaffee ☕ aus!
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Hier geht es zur ➡ YubiKey Themenseite, dort findest du noch mehr Beiträge rund um den YubiKey.
Photo by Danielle Rice on Unsplash

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.
Moin Stefan,
du schreibst:
In der Datei ist eine Zeile zu ergänzen.
C:\Users\benutzername\.gnupg
In welcher Datei ist was zu ergänzen? Da fehlt etwas in deinem Text. Bei mir erscheint kein PIN Fenster.
VG
Karsten
Hallo Karsten,
danke für den Hinweis!
Das war nicht ganz gut beschrieben. Ich habe das nun geändert.
Grüße
Stefan