ubuntu 有没有一种方法可以在ssh中使用FIDO 2/webauthn

niwlg2el  于 2023-06-21  发布在  其他
关注(0)|答案(1)|浏览(203)

正如标题所说。
我们使用ssh连接到许多站点,并希望使用FIDO 2/webauthn进行身份验证。
这可能吗?我们需要什么工具?
我们使用ubuntu作为客户端和服务器。

vlurs2pr

vlurs2pr1#

如果将FIDO 2兼容的安全密钥与ecdsa-sk密钥结合使用,则可以在ssh'ing到服务器时实现类似FIDO 2的多因素身份验证。诀窍是用ecdsa-sk(“sk”代表“security key”)和需要输入安全密钥PIN的标志生成一个新的密钥对:

$> ssh-keygen -t ecdsa-sk -C <email address> -O verify-required

出现提示时输入安全密钥的PIN,然后跳过提示以密码保护密钥对(安全密钥及其PIN将保护其使用)。最后,指定保存密钥对的绝对文件路径。
您最终将得到一个私钥和一个公钥,正如您所期望的那样。将**.pub文件作为鉴权密钥添加到https://github.com/settings/keys中,然后更新~/.ssh/config**,告诉它使用相应的私钥:

Host github.com
  IgnoreUnknown UseKeychain
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/name-you-gave-keypair-here

为了测试一切都正常,你可以尝试ssh到GitHub:

$> ssh -T git@github.com

你应该看到这样的东西:
Hi UsernameHere!您已成功通过身份验证,但GitHub不提供shell访问权限。
现在你有了它-安全密钥支持的多因素身份验证,为您的SSH连接。
最后一件事,您需要在服务器和客户端至少使用OpenSSH 8.2,因为它是支持ecdsa-sk密钥对的最早版本。

相关问题