我想知道是否可以使用 FIDO2 對 ssh 伺服器進行身份驗證。有許多教學解釋如何使用 GPG 和較新的 Yubikeys 進行 ssh 驗證,但我沒有找到任何關於是否可能或如何使用 FIDO2 或 U2F(特別是 Yubico 安全金鑰 NFC)進行身份驗證的資訊ssh 伺服器。
答案1
好消息! OpenSSH 8.2新增了對 FIDO/U2F 的支援。不再需要補丁。
FIDO/U2F 支持
此版本在 OpenSSH 中新增了對 FIDO/U2F 硬體身份驗證器的支援。 U2F/FIDO 是廉價雙重認證硬體的開放標準,廣泛用於網站身份驗證。在 OpenSSH 中,新的公鑰類型
ecdsa-sk
和ed25519-sk
以及對應的憑證類型支援 FIDO 裝置。
ssh-keygen
(1) 可用於產生 FIDO 令牌支援的金鑰,之後可以像 OpenSSH 支援的任何其他金鑰類型一樣使用它們,只要在使用金鑰時附加硬體令牌即可。 FIDO 令牌通常也要求使用者透過觸控或點擊來明確授權操作。產生 FIDO 金鑰需要附加令牌,並且通常需要使用者點擊令牌來確認操作:
$ 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
答案2
您可以使用yubico提供的pams。
libpam-yubico
可以使用otp身份驗證。參考
libpam-u2f
對於 u2f(不能與 ssh 一起使用,因為它使用僅讀取本地連接埠的 libusb。)
順便一提:你不需要 PPA,它已經在倉庫了(至少 Debian 是這樣)。
答案3
這可以透過修補 OpenSSH 伺服器和客戶端。
由於此修補程式未整合到官方 OpenSSH 程式碼中,並且看起來很老套,因此它可能包含錯誤和漏洞。