我一直在尝试转发我的 Yubico 来执行 sudo 身份验证,而无需使用密码
我已经使用以下方法成功在 macOS 12 上使用 Yubico 执行了 SSH 身份验证ssh -A [email protected]
但在我登录远程服务器后,我尝试检查卡状态,但得到以下输出
[email protected]:~$ gpg --card-status
gpg: error getting version from 'scdaemon': Forbidden
gpg: selecting card failed: Forbidden
gpg: OpenPGP card not available: Forbidden
Yubico 命令也给出了以下错误Yubikey core error: no yubikey present
这就是我在 macOS 上设置gpg-agent.conf
enable-ssh-support
pinentry-program /usr/local/MacGPG2/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac
default-cache-ttl 60
max-cache-ttl 120
# use-standard-socket
# extra-socket /Users/pedrocavaleiro/.gnupg/S.gpg-agent.extra
我使用命令获取了本地机器套接字gpgconf --list-dirs agent-extra-socket
,并使用命令获取了远程机器上的套接字gpgconf --list-dirs agent-socket
我在本地机器上配置~/.ssh/config
Host server.com
HostName server.com
ForwardAgent yes
User user
# RemoteForward /run/user/1000/gnupg/S.gpg-agent /Users/pedrocavaleiro/.gnupg/S.gpg-agent.extra
RemoteForward /run/user/1000/gnupg/S.gpg-agent /Users/pedrocavaleiro/.gnupg/S.gpg-agent
RemoteForward /run/user/1000/gnupg/S.gpg-agent.ssh /Users/pedrocavaleiro/.gnupg/S.gpg-agent.ssh
另外,在远程机器上,我将该行添加StreamLocalBindUnlink yes
到文件中/etc/ssh/sshd_config
并重新启动了sshd
服务
我尝试了互联网上几个教程中的一些其他配置,甚至尝试了 Yubico 提供的一些配置,但都没有成功。
我相信在我让 Yubico 在远程机器上被识别后,我只需要按照这些指示操作使用 Yubikey 通过 SSH 会话进行 sudo仅适配 Ubuntu
从版本开始我的本地机器
macOS 12.4 (21F79)
ssh: OpenSSH_8.6p1, LibreSSL 3.3.6
gpg (GnuPG/MacGPG2) 2.2.34
libgcrypt 1.8.9
对于远程机器
Ubuntu 22.04 LTS
Kernel: 5.15.0-40-generic
ssh: OpenSSH_8.9p1 Ubuntu-3, OpenSSL 3.0.2 15 Mar 2022
gpg (GnuPG) 2.2.27
libgcrypt 1.9.4
更新 1gpg-agent.conf
我通过删除 更新了
use-standard-socket
extra-socket /Users/pedrocavaleiro/.gnupg/S.gpg-agent.extra
还更新了和~/.ssh/config
,而不是使用$.gpg-agent.extra
我RemoteForward
使用的$.gpg-agent
(在我最初的问题中可见)
gpg --card-status
这些更改使我能够成功地在远程机器上使用该命令,但出现了一个新问题
尝试ssh-keygen -D /usr/lib/x86_64-linux-gnu/libykcs11.so
输出
C_GetSlotList failed: 48
cannot read public key from pkcs11
并且ykpamcfg -2 -v
仍然输出Yubikey core error: no yubikey present
答案1
您无法像那样共享 yubikey。您可以通过转发 GPG 套接字通过 SSH 共享智能卡,但专用的 yubikey 工具依赖于 USB 设备。