我想使用以下命令连接到 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 上的工作原理几乎相同:
- 安装 OpenSC。
- 将 PIV/CAC 插入读卡器。
要查看 Mac 上的证书,请输入:
pkcs15-工具 --list-public-keys
记下 PIV AUTH 公钥 ID 号。
- 使用带有卡的读卡器: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>
使用您的 PIV AUTH 公钥 ID 号查看您的 SSH 密钥。进入:
pkcs15-工具 --read-ssh-key 01
出现提示时,输入您的 PIV/CAC PIN。 SSH 密钥将如下所示:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyPn2dShOFLBnMraiP2MnLU ....
复制 SSH 密钥并将其粘贴到文本文件中。
- 将文本文件发送给服务器管理员并请求新帐户。
拥有帐户后,您可以登录远程服务器。进入:
ssh -I /usr/lib64/opensc-pkcs11.so @
或者,您可以将 /etc/ssh_config 文件中的设置更新为:
PKCS11Provider /usr/lib64/opensc-pkcs11.so
出现提示时输入您的 PIV/CAC PIN。一旦通过验证,您将登录到远程服务器。