使用YubiKey PIV和PKCS#11来进行SSH认证

我在去年使用了Clouldflare提供的Offer购买了一大堆的YubiKey 5,给群友分了几个之后自己也用起来了。这篇文章讲的东西也并不新鲜,但是我在使用YubiKey的时候也踩了一些坑,简单记录一下,希望能帮到跟我一样有疑问的人。

TLDR

  1. 你只需要导入SSH的私钥就行,不需要生成和导入X.509证书。
  2. YubiKey Manager是个废物,还得是yubico-piv-tool。
  3. 不建议让YubiKey生成证书和私钥,这种情况下私钥无法导出备份,YubiKey丢了很麻烦。
  4. 如果你是一个狂热的加密爱好者,我的操作是不够安全的。

HOWTO

1. 准备好你的SSH私钥

一般来说,你的SSH私钥在 ~/.ssh/ 目录下,根据密钥加密方式的不同,文件名有所区别,例如 id_rsa。

2. 识别你的私钥格式

在下一步中,你需要明确你的SSH私钥是哪种格式,常见的SSH私钥格式有OPENSSH、SSH2和PEM等。

例如这是一个常见的OPENSSH私钥:

这是一个常见的PEM私钥:

由于YubiKey Manager只支持PEM格式的密钥,所以你需要将其他格式的密钥转成PEM格式。

3. 导入你的私钥到PIV

使用YubiKey Manager来导入私钥到slot 9a

打开YubiKey Manager,Applications->PIV->Configure Certificates->Authentication (Slot 9a)->Import 选择你的密钥文件。

你可能需要修改一下文件后缀名为key或者pem才能导入。

使用yubico-piv-tool来导入私钥到slot 9a

4. 生成公钥并将其上传至远程服务器(可选)

这个都会吧,先不写

5. 认证SSH

先安装yubico-piv-tool

使用PKCS#11认证SSH

你也可以将PKCS11Provider添加到~/.ssh/config

FAQ

Q: 只能YubiKey的PIV来做SSH认证吗?

A: 不是的。现在你还可以使用OpenPGP和FIDO2进行SSH认证。

REFER

https://developers.yubico.com/PIV/Guides/SSH_with_PIV_and_PKCS11.html

0 条评论

昵称

暂无评论,要说点什么吗?