Yubikey-PIV-as-SSH-Key¶
简介使用 Yubikey 作为 SSH 密钥。¶
先决条件### 1. 安装 OpenSC 和 YubiKey Manager(仅限 CLI)¶
在 Ubuntu/Debian 上```¶
sudo apt update sudo apt install opensc yubikey-manager
### 2. 如果这是新的 Yubikey,请更改默认的 PIV 管理密钥、PIN 和 PUK。
`ykman`工具可以为您生成新的管理密钥。对于 PIN 和 PUK,您需要提供自己的值(6-8 位数字)。
确保将生成的密码保存在安全的地方,例如密码管理器。任何时候生成密钥对、导入证书或更改 PIN 或 PUK 重试次数时都需要管理密钥
PUK 也应该保存在安全的地方。如果 PIN 码输入错误次数过多,则使用此方法。
## 生成 PIV 密钥
1. 确保 Yubikey 上启用 CCID 模式
默认情况下,这是一个 RSA 2048 位密钥。根据您拥有的 Yubikey,您可以使用`-a`/`--algorithm`进行更改。
(9a 是 PIV 身份验证槽。)
3. 生成自签名 X.509 证书
## 视窗1. 设置系统路径
进入控制面板→系统和安全→系统→高级系统设置
单击“环境变量...”
在系统变量下,突出显示“路径”并单击“编辑...”
单击“新建”并添加 Yubico PIV Tool\bin 的绝对路径
2. 设置ssh配置文件
打开 PowerShell 并运行以下命令:
系统将再次提示您输入 PIN,然后 SSH 身份验证将照常进行。
要将`ssh`配置为使用 Yubikey 的 SSH 密钥,请使用`PKCS11Provider`配置选项而不是`IdentityFile`,例如:
附加说明¶
- 使用 SSH 时,可能会提示您输入密钥的使用者名称,例如
Enter PIN for 'SSH key':。但是,如果您将密钥添加到代理,您将收到类似Enter passphrase for PKCS#11:的提示。这些是相同的 PIN(您的 PIV PIN)。 - 如果您使用
ssh-add -d或ssh-add -D从 ssh-agent 中删除密钥,则必须删除 PKCS 库并将其重新添加到代理中,或者重新启动代理。 - 重新添加库运行ssh-add -e /usr/local/lib/opensc-pkcs11.so ssh-add -s /usr/local/lib/opensc-pkcs11.so
参考文献[1].https://github.com/jamesog/yubikey-ssh¶
[2].SSH 配置