YubiKey 14 – SSH-Anmeldung mit einem Linux-Client mit YubiKey an einem Server

Ein YubiKey kann genutzt werden, um eine SSH-Verbindung zu einem entfernten Linux-Server zu authentifizieren.

Auf einem Linux-System wird dabei der Authentifizierungsschlüssel vom gnupg-agent an den ssh-agent übergeben.

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.

Eine Anleitung zum Konfigurieren des PuTTYs unter Windows findet ihr hier im Blog:

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

Zur YubiKey Themenseite gehts ➡ hier

Yubico - YubiKey 5C NFC - Two Factor Authentication USB...
Yubico Y-291 Yubikey 5Ci Schwarz

Er werden einige Programme auf dem Linux-System benötigt, um den YubiKey ansprechen zu können. Die notwendigen Tools sind in den Repositories vorhanden und können einfach installiert werden.

sudo apt install gnupg gnupg-agent pcscd scdaemon

Nach der Installation der Pakete kann gleich geprüft werden, ob Ubuntu den YubiKey erkennt.

gpg --card-status

Wird der YubiKey erkannt, dann kann die eigentliche Konfiguration beginnen.

Zuerst lässt man sich den GnuPG agent-ssh-socket Pfad ausgeben.

gpgconf --list-dirs | grep ssh

Ausgabe sieht etwa so aus:

agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh

Dann wird der Pfad als SSH_AUTH_SOCKETUmgebungsvariable festgelegt

export SSH_AUTH_SOCK=/run/user/1000/gnupg/S.gpg-agent.ssh

Im Terminal könnt ihr gleich prüfen, ob die Konfiguration erfolgreich war, es wird euer YubiKey ausgegeben.

ssh-add -l

Die vorgenommenen Einstellungen sind nur temporär. Eine permanente Konfiguration kann mit dem folgenden Skript eingestellt werden. Erstellt in irgendeinem Ordner ein neues bash-Skript.

nano yubikey-ssh.sh

Das Skript ausführbar machen und starten:

chmod +x yubikey-ssh.sh
./yubikey.sh

Das Skript nimmt die erforderlichen Einstellungen automatisch vor.

Create required directories
==> Disable Gnome-Keyring ssh component
==> Point ssh agent socket environment variable to GnuPG
==> Done

Logout and after login GnuPG will be your ssh-agent

Der Inhalt des Skripts ist

#!/bin/sh

echo "Create required directories"
mkdir ~/.config/autostart
mkdir ~/.config/environment.d

echo "==> Disable Gnome-Keyring ssh component"
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart
echo "Hidden=true" >> ~/.config/autostart/gnome-keyring-ssh.desktop

echo "==> Point ssh agent socket environment variable to GnuPG"
cat > ~/.config/environment.d/99-gpg-agent_ssh.conf <<'EOF'
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh
EOF

echo "==> Done"
echo
echo "Logout and after login GnuPG will be your ssh-agent"
echo

➡ Quelle: https://gist.github.com/artizirk/d09ce3570021b0f65469cb450bee5e29

Die Anmeldung an einem entfernten Server funktioniert dann wie gehabt. Es erfolgt lediglich eine Abfrage eures YubiKey PINs.

ssh benutzer@ip-adresse

 

Das hier vorgestellte Verfahren funktioniert auch wunderbar in einer virtuellen Maschine. Einfach den YubiKey am Host anschließen und an den Gast übergeben und die obige Einstellungen vornehmen. Dann könnt ihr euch auch schon mit jeder virtuellen Box und dem YubiKey an Servern per SSH anmelden.

 

Eine Anleitung zum Erstellen einer virtuellen Maschine mit Oracles VirtualBox findet ihr ➡ hier


YubiKey Artikel Serie

Die Liste enthält alle Artikel der YubiKey-Serie, die dir genau aufzeigen wie du deinen Hardwaretoken für die unterschiedlichsten Anwendungsgebiete konfigurieren kannst.

  1. YubiKey 01 – YubiKey 5C NFC – Erste Schritte – Installation und Setup
  2. YubiKey 02 – Einmalpasswörter (OTPs) speichern
  3. Passwortmanager mit YubiKey absichern
  4. YubiKey 04 – Passwortlose Anmeldung an Microsoft 365
  5. YubiKey 05 – VirtualBox für die Erstellung des OpenPGP-Schlüsselpaars und zum Anschluss des YubiKeys vorbereiten
  6. YubiKey 06 – OpenPGP Schlüsselpaare erstellen – Master Key und Sub Keys
  7. YubiKey 07 – Revoke-Datei erstellen und Schlüssel exportieren
  8. YubiKey 08 – Hilfreiche GPG-Befehle zur Verwaltung von Schlüsselpaaren
  9. YubiKey 09 – OpenPGP-Schlüssel auf den YubiKey exportieren
  10. YubiKey 10 – Öffentlichen GPG-Schlüssel auf Linux-Server übertragen und für passwortlose Anmeldung nutzen
  11. YubiKey 11 – Windows anpassen zur SSH-Anmeldung an einem Linux-System
  12. YubiKey 12 – Benutzer-Anmeldung an Windows nur mit einem YubiKey erlauben
  13. YubiKey 13 – Benutzer-Anmeldung an Linux/Ubuntu nur mit einem YubiKey erlauben
  14. YubiKey 14 – SSH-Anmeldung mit einem Linux-Client mit YubiKey an einem Server

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


Photo by Brina Blum on Unsplash

(**) Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Schreibe einen Kommentar

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