YubiKey 11 – Windows anpassen zur SSH-Anmeldung an einem Linux-System

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

Bei der Installation von „gpg4win“ werden nicht alle Komponenten benötigt.

Achtet darauf, dass nur die folgenden drei installiert werden

  1. Kleopatra
  2. GpgOL
  3. GpgEX

Nach der Installation könnt ihr die Eingabeaufforderung öffnen und wie bei Ubuntu die vorhandene GPG-Version abfragen.

gpg --version

Windows GPG-Version abfragen
Windows GPG-Version abfragen

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.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

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

gpg-agent.conf
gpg-agent.conf

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

Kontextmenü - Git Bash
Kontextmenü – Git Bash

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}')

.bashrc
.bashrc

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.

Kleopatra - Einstellungen
Kleopatra – Einstellungen
Zugriff auf Git ausschließlich mit YubiKey
Zugriff auf Git ausschließlich mit YubiKey

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.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj



Hier geht es zur ➡ YubiKey Themenseite, dort findest du noch mehr Beiträge rund um den YubiKey.


Photo by Danielle Rice on Unsplash

2 Antworten auf „YubiKey 11 – Windows anpassen zur SSH-Anmeldung an einem Linux-System“

  1. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert