我们将Ubuntu用作客户端和服务器。
如果将fido2兼容的安全密钥与
ecdsa-sk
ecdsa-sk
$> ssh-keygen -t ecdsa-sk -C <email address> -O verify-required
提示时输入安全密钥的PIN,然后跳过提示,以密码保护Keypair(安全密钥及其PIN将保护其使用)。最后,指定将按键保存到的绝对文件路径。 您将按照您的期望,最终获得私钥和公共密钥。将
.pub文件添加到
https://github.com/settings/keys作为authentication
密钥,然后更新〜/.ssh/configist,以告诉它使用相应的私钥:
Host github.com
IgnoreUnknown UseKeychain
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/name-you-gave-keypair-here
要测试一切正常,您可以尝试进入github:
$> ssh -T [email protected]
您应该看到这样的东西:
-hi用户名!您已经成功验证了,但是GitHub不提供外壳访问。
最后一件事,您需要至少在服务器和客户端上使用OpenSSH 8.2,因为它是支持
ecdsa-sk
KEYPAIRS的最早版本。
您还可以利用WebAuthn从浏览器中进行SSH身份验证。 如果您有兴趣,我可以推荐我在github
https://github.com/hullarb/ssheasy上推荐我的Ssheasy项目。这是一个基于WebAssembly的SSH客户端,可以在浏览器中运行,这样它可以利用Web Autheration Api。 在服务器端,您只需要近期的OpenSSH Server v8.4或更高版本,并且如上所述启用了其配置中的公共密钥算法。