通过 Yubikeys 进行 SSH 身份验证

主要观点:

  • 介绍用 Yubikey 作为 ssh 密钥的第二因素,OpenSSH 8.2 及之后版本支持 Yubikey,Yubikey 4 不支持需 FIDO2,非驻留密钥更安全且不占 Yubikey 插槽。
  • 详细说明了创建非驻留密钥(推荐,更安全)和驻留密钥的步骤,包括插入 Yubikey、设置 PIN、生成密钥对、复制公钥到远程主机及测试等。
  • 提及可通过命令列出和删除驻留密钥,还讨论了 Yubikey 基于 ssh 认证的优点和不足,如需插入 Yubikey PIN 较麻烦,且 Azure 不支持 ed25519 密钥。

关键信息:

  • Yubikey 系列 5 起可用于 ssh 密钥强化,非驻留密钥更优,Yubikey 5 有 25 个可用插槽。
  • 生成非驻留密钥命令:ssh-keygen -t ed25519-sk;生成驻留密钥命令:ssh-keygen -t ed25519-sk -O resident -O application=ssh:my-hostname -O verify-required
  • 可通过ykman fido credentials list列出当前使用证书,ykman fido credentials delete da7fdc删除特定证书。

重要细节:

  • 不同系统配置方面,openSUSE Leap 15.5 和 MicroOS 无需特定更改,OpenSSH 服务器端可在sshd_config中添加PubkeyAuthOptions verify-required,客户端可在authorized_keys中添加verify-required
  • 注意 prefer ed25519 over ecdsa,因为 ECDSA 中 NIST 产生曲线的可信度问题。
  • 提醒非驻留密钥可节省 Yubikey 插槽,驻留密钥删除时需注意私钥需被覆盖才会删除。
  • 目前设置仅在主 Yubikey 和一台设备上,需为另一台电脑设置非驻留密钥,且因只有一个 Yubikey 存在单点故障风险,还需解决每次 ssh 连接需输入 PIN 的问题。
阅读 11
0 条评论