MacOS 通过 yubikey 使用 PIV 和 PKCS#11 免密验证登录服务器SSH

admin 2024年12月17日10:49:50评论10 views字数 1054阅读3分30秒阅读模式

Yubikey 最酷的特性之一就是通过 PKCS#11 来验证 SSH。 把私钥存储在 Yubikey 上,无论在何时,当它被访问后都可以反馈你的操作。

除了常见的远程登录,所有通过 SSH 连接的操作(使用远程 git 服务器(比如 Github))都可以触发这一行为。这是客户端的保护手段,用来防止在未授权的情况下获取到 SSH 私钥。

需要注意的是,只有 RSA 密钥支持这种操作。

  1. 1. 创建一对 2048-bit 的 RSA 钥匙串:
yubico-piv-tool -s 9a -a generate -k --pin-policy=once --touch-policy=always --algorithm=RSA2048 -o public.pem

输入你的 Yubikey 的管理密钥

  1. 2. 创建一个自签名证书:
yubico-piv-tool -a verify-pin -a selfsign-certificate -s 9a -S '/CN=ssh/' --valid-days=365 -i public.pem -o cert.pem

输入 PIN 码然后触摸 Yubikey

  1. 3. 导入已(自)签名的证书:
yubico-piv-tool -k -a import-certificate -s 9a -i cert.pem

输入你的 Yubikey 的管理密钥

  1. 4. 以 OpenSSH 使用的正确格式导出存储在 Yubikey 上的公钥(Clear the SSH agent):
ssh-add -Dssh-add -e /usr/local/lib/libykcs11.dylib

ps: MacOS寻找libykcs11.dylib,使用find / -name "*libykcs11*"

现在可以将这个公钥粘贴到服务器的 ~/.ssh/authorized_keys 用作 SSH 验证了。

5. 检查 9a 插槽的状态(可选):

yubico-piv-tool -a status
  1. 6. 通过 PKCS#11 添加私钥到本地 ssh-agent:
ssh-add -s /usr/local/lib/libykcs11.dylib

当它询问密码时输入你的 Yubikey 的 PIN 码。

  1. 7. 确定私钥已经被添加:
ssh-add -L
  1. 8.  PKCS11Provider 添加到~/.ssh/config中:
Host ${VPS_IP} PKCS11Provider /usr/local/lib/libykcs11.dylib Port 22 User root

原文始发于微信公众号(KQsec):MacOS 通过 yubikey 使用 PIV 和 PKCS#11 免密验证登录服务器SSH

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月17日10:49:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MacOS 通过 yubikey 使用 PIV 和 PKCS#11 免密验证登录服务器SSHhttps://cn-sec.com/archives/3517824.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息