使用 Fido2 / Yubico 安全金鑰進行 SSH 驗證

使用 Fido2 / Yubico 安全金鑰進行 SSH 驗證

我想知道是否可以使用 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-sked25519-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 程式碼中,並且看起來很老套,因此它可能包含錯誤和漏洞。

相關內容