如何让我的 Yubikey 在 Windows 10 中与 SSH 配合使用?

Dro*_*oid 7 git ssh yubikey

出于技术兴趣购买了 Yubikey 5 NFC(固件 5.2.7)并尽可能设置 FIDO2 身份验证后,我遇到了无法再通过 SmartGit 连接到我的 GitLab 服务器的问题,因为没有请求第二个因素,因此我无法连接到服务器。

然后我决定在 Windows 10 上通过 Git Bash 和 SSH 处理它。不幸的是,这里的文档假设了很多先验知识,而我在这个主题上绝对是初学者。与此同时,我设法使用本地生成的 SSH 证书通过 Git Bash 和 SSH 连接到服务器。

现在我想使用 Yubikey 而不是计算机本地存储的证书。不幸的是,所有说明(例如这个https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generate-a-new-ssh-key-and-添加-it-to-the-ssh-agent#generate-a-new-ssh-key-for-a-hardware-security-key)会给我带来相同的错误消息:

$ ssh-keygen -t ed25519-sk -C "name@mail.com"
Generating public/private ed25519-sk key pair.
You may need to touch your authenticator to authorize key generation.
Key enrollment failed: invalid format
Run Code Online (Sandbox Code Playgroud)

在此之前,系统会提示我输入 PIN 码。有趣的是:消息看起来一模一样,无论我是否插入了 Yubikey 都没关系。使用 ecdsa-sk 的尝试会导致相同的结果。

(顺便说一句,我已经在 Yubikey 上成功存储了 OpenPGP 证书。)

现在我还阅读了一些有关 libfido2 的内容,但是我找不到任何有关如何在 Windows 10 上使用它的说明。

所以我的问题是:我如何设法使用我的 Yubikey 而不是我的本地密钥?或者:如果这是问题,我该如何安装 libfido2?

Von*_*onC 3

2021 年 5 月

所以:确实,正如本月初(2021 年 5 月)在 GitHub 上宣布的那样,SSH Git 操作现在支持安全密钥,但是,正如此处所讨论的,仍然存在问题。

您的错误消息看起来像是 Debian 上正在发生的错误:“问题 980393:/usr/bin/ssh-keygen -t ecdsa-sk失败并显示“密钥注册失败:格式无效”本月仍在报道
中。

如果此操作也失败-t ecdsa,请尝试使用OpenSSH 插件通过本机 Windows Hello API 连接到 FIDO/U2F 安全密钥可能会有所帮助。
首先键入,如问题 1export SSH_SK_HELPER=/usr/lib/ssh/ssh-sk-helper.exe所示。 检查您的 OpenSSH 版本至少为 8.2。我这边使用的是最新的 Windows 版 Git:tavrez/openssh-sk-winhello

ssh -V
OpenSSH_8.5p1, OpenSSL 1.1.1k  25 Mar 2021
Run Code Online (Sandbox Code Playgroud)

OP DroidDroid在评论中添加:

尽管如此,我现在遇到了 GitLab 尚不支持安全密钥的问题:issue 213259


2022 年 2 月:GitLab 现在应该支持这些安全密钥。

请参阅GitLab 14.8(2022 年 2 月)

支持 ecdsa-sk 和 ed25519-sk SSH 密钥

OpenSSH 8.2通过新的 ecdsa-sk 和 ed25519-sk 密钥类型添加了对 FIDO/U2F 硬件身份验证器的支持。

GitLab 现在支持这些密钥类型,允许用户利用硬件支持的 SSH 身份验证。

https://about.gitlab.com/images/14_8/ssh_key.png -- 支持 ecdsa-sk 和 ed25519-sk SSH 密钥

请参阅文档问题