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

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

    1. 创建一对 2048-bit 的 RSA 钥匙串:

      输入你的 Yubikey 的 管理密钥

    2. 创建一个自签名证书(或者使用证书签名请求):

      或者用 selfsign-certificate 替代 request-certificate ,并把得到的 .csr 文件进行内部 CA 认证。

    3. 导入已(自)签名的证书:

      输入你的 Yubikey 的 管理密钥

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

      1. yubico-piv-tool -a status
    5. 通过 PKCS#11 添加私钥到本地 ssh-agent:

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

    6. 确定私钥已经被添加:

      1. 或者,选择性的把 PKCS11Provider 添加到 ~/.ssh/config 中:

        1. Host github.com
        2. PKCS11Provider /usr/local/opt/opensc/lib/pkcs11/opensc-pkcs11.so
        3. User foobar