除了常见的远程登录,所有通过 SSH 连接的操作(比如使用远程 git 服务器(比如 Github))都可以触发这一行为。这是客户端的保护手段,用来防止在未授权的情况下获取到 SSH 私钥。
需要注意的是,只有 RSA 密钥支持这种操作。
创建一对 2048-bit 的 RSA 钥匙串:
输入你的 Yubikey 的 管理密钥。
创建一个自签名证书(或者使用证书签名请求):
或者用
selfsign-certificate
替代request-certificate
,并把得到的.csr
文件进行内部 CA 认证。导入已(自)签名的证书:
输入你的 Yubikey 的 管理密钥。
检查 9a 插槽的状态(可选):
❯ yubico-piv-tool -a status
通过 PKCS#11 添加私钥到本地 ssh-agent:
当它询问密码时输入你的 Yubikey 的 PIN 码。
确定私钥已经被添加:
或者,选择性的把 PKCS11Provider 添加到
~/.ssh/config
中:Host github.com
PKCS11Provider /usr/local/opt/opensc/lib/pkcs11/opensc-pkcs11.so
User foobar