使用智能卡 SSH 到 Linux 主机无法正常工作

使用智能卡 SSH 到 Linux 主机无法正常工作

我想使用以下命令连接到 ssh 主机:

ssh -I /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so HOSTNAME

该错误表明该库没有返回插槽。

debug1:提供程序/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so:制造商ID cryptoki版本2.20库描述库版本0.17 debug1:pkcs11_add_provider:提供程序/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so返回没有插槽

列出读者的命令工作正常,我可以看到插槽 - 它就在那里。

$ opensc-tool --list-readers
# Detected readers (pcsc)
Nr.  Card  Features  Name
0    Yes             Gemalto USB Shell Token V2 00 00

这可能是什么原因?

这可能与:如何设置智能卡 SSH 身份验证?

===========================编辑====================== =========

我正式放弃了这个。

答案1

来自的消息opensc-tool --list-readers 表明读卡器存在并看到该卡。

但错误消息中的“插槽”指的是更高级别的抽象:卡本身上的可编程“密钥插槽”。您可以使用pkcs11-tool --list-slots或查看它们pkcs11-tool --list-token-slots

您可能还需要运行opensc-tool --name 以验证是否已正确识别卡类型。

答案2

https://piv.idmanagement.gov/engineering/ssh/#ssh-from-macos在 Linux 上的工作原理几乎相同:

  1. 安装 OpenSC。
  2. 将 PIV/CAC 插入读卡器。
  3. 要查看 Mac 上的证书,请输入:

    pkcs15-工具 --list-public-keys

  4. 记下 PIV AUTH 公钥 ID 号。

  5. 使用带有卡的读卡器:SCR35xx 智能卡读卡器
 Public RSA Key [PIV AUTH pubkey]
     Object Flags   : [0x0]
     Usage          : [0xD1], encrypt, wrap, verify, verifyRecover
     Access Flags   : [0x2], extract
     ModLength      : 2048
     Key ref        : 154 (0x9A)
     Native         : yes
     ID             : 01 (EXAMPLE ONLY)
     DirectValue    : <absent>
  1. 使用您的 PIV AUTH 公钥 ID 号查看您的 SSH 密钥。进入:

    pkcs15-工具 --read-ssh-key 01

  2. 出现提示时,输入您的 PIV/CAC PIN。 SSH 密钥将如下所示:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyPn2dShOFLBnMraiP2MnLU ....

  3. 复制 SSH 密钥并将其粘贴到文本文件中。

  4. 将文本文件发送给服务器管理员并请求新帐户。
  5. 拥有帐户后,您可以登录远程服务器。进入:

    ssh -I /usr/lib64/opensc-pkcs11.so @

  6. 或者,您可以将 /etc/ssh_config 文件中的设置更新为:

    PKCS11Provider /usr/lib64/opensc-pkcs11.so

  7. 出现提示时输入您的 PIV/CAC PIN。一旦通过验证,您将登录到远程服务器。

相关内容