SSH-Authentifizierung mit Fido2 / Yubico-Sicherheitsschlüssel

SSH-Authentifizierung mit Fido2 / Yubico-Sicherheitsschlüssel

Ich habe mich gefragt, ob es möglich ist, FIDO2 zur Authentifizierung gegenüber einem SSH-Server zu verwenden. Es gibt viele Tutorials, die erklären, wie man GPG und die neueren Yubikeys für die SSH-Authentifizierung verwendet, aber ich finde keine Informationen darüber, ob es möglich ist oder wie es möglich ist, FIDO2 oder U2F (insbesondere Yubico Security Key NFC) zur Authentifizierung gegenüber einem SSH-Server zu verwenden.

Antwort1

Gute Nachrichten! OpenSSH 8.2hat Unterstützung für FIDO/U2F hinzugefügt. Kein Patch mehr nötig.

FIDO/U2F-Unterstützung

Diese Version fügt OpenSSH Unterstützung für FIDO/U2F-Hardwareauthentifikatoren hinzu. U2F/FIDO sind offene Standards für kostengünstige Zwei-Faktor-Authentifizierungshardware, die häufig zur Website-Authentifizierung verwendet wird. In OpenSSH werden FIDO-Geräte durch neue öffentliche Schlüsseltypen ecdsa-skund ed25519-sksowie entsprechende Zertifikatstypen unterstützt.

ssh-keygen(1) kann verwendet werden, um einen FIDO-Token-basierten Schlüssel zu generieren. Danach können sie wie jeder andere von OpenSSH unterstützte Schlüsseltyp verwendet werden, solange der Hardware-Token bei Verwendung der Schlüssel angeschlossen ist. FIDO-Token erfordern im Allgemeinen auch, dass der Benutzer Vorgänge explizit durch Berühren oder Antippen autorisiert.

Zum Generieren eines FIDO-Schlüssels muss das Token angehängt werden. Normalerweise muss der Benutzer zur Bestätigung des Vorgangs auf das Token tippen:

  $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk
  Generating public/private ecdsa-sk key pair.
  You may need to touch your security key to authorize key generation.
  Enter file in which to save the key (/home/djm/.ssh/id_ecdsa_sk): 
  Enter passphrase (empty for no passphrase): 
  Enter same passphrase again: 
  Your identification has been saved in /home/djm/.ssh/id_ecdsa_sk
  Your public key has been saved in /home/djm/.ssh/id_ecdsa_sk.pub

Antwort2

Sie können von Yubico bereitgestellte Pams verwenden.

libpam-yubicozur OTP-Authentifizierung kann verwendet werden.Referenz

libpam-u2ffür u2f (kann nicht mit ssh verwendet werden, da es libusb verwendet, das nur lokale Ports liest.)

Übrigens: Sie brauchen kein PPA, es ist bereits im Repo (zumindest Debian).

Antwort3

Dies ist möglich durchPatchen des OpenSSH-Servers und -Clients.

Da dieser Patch nicht in den offiziellen OpenSSH-Code integriert ist und ziemlich gehackt aussieht, könnte er Fehler und Schwachstellen enthalten.

verwandte Informationen