Yubico 通过 ssh 转发

Yubico 通过 ssh 转发

我一直在尝试转发我的 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.extraRemoteForward使用的$.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 设备。

相关内容