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-sk
unded25519-sk
sowie 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-yubico
zur OTP-Authentifizierung kann verwendet werden.Referenz
libpam-u2f
fü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.