如何使用 U2F 硬件验证器解锁通过 SSH 连接的计算机中的 SSH 密钥?

如何使用 U2F 硬件验证器解锁通过 SSH 连接的计算机中的 SSH 密钥?

我有多台计算机,我都在这些计算机上生成了 ed25519-sk SSH 密钥,它们都使用相同的 U2F 硬件验证器 (yubikey 5C NFC)。我现在处于涉及三台计算机的情况:X、Y 和 Z。我拥有计算机 X 的物理所有权以及 U2F 密钥。我使用 U2F 密钥通过 VPN SSH 进入计算机 Y。然后我想从计算机 Y 通过 SSH 进入计算机 Z,该计算机不在 VPN 上,但可以在 Y 的 LAN 上访问。计算机 Y 上的 SSH 密钥需要将 U2F 密钥插入计算机 Y 的 USB 端口才能使用。但是,我离计算机 Y 很远,只能在计算机 X 上插入 U2F 密钥。我是否可以通过从计算机 X 到 Y 的 SSH 使用该 U2F 密钥来解锁计算机 Y 上的 SSH 密钥?安全密钥提供者可以覆盖用于与 U2F 键接口的库的参数,但我不知道是否存在可以做我想要的库。

答案1

如果您使用相同的 U2F 硬件令牌,则可以将私钥文件从机器 Y 复制到机器 X,将该密钥添加到代理,然后使用代理转发 ( ssh -A) 登录 Y。这是因为,为了使用安全密钥支持的密钥,您需要在同一台机器上安装安全密钥和私钥。

密钥ed25519-sk是使用安全密钥和随机生成的质询字符串生成的。生成过程会产生一个密钥句柄,需要将其传递给安全密钥以生成签名,该句柄存储在私钥文件中。安全密钥的访问权限通常无法转发(除非您使用 USB-IP 之类的东西),因此您需要将私钥放在与插入安全密钥的同一台机器上。

好消息是,如果没有安全密钥,密钥的密钥句柄(以及私钥)ed25519-sk就完全没有用处。因此,将其存储在多台机器、磁盘或可移动媒体上的风险大大降低。

相关内容