使用 Yubikey 通过 SSH 会话进行 sudo

使用 Yubikey 通过 SSH 会话进行 sudo

我目前使用氪石处理保护我用于 SSH 访问主机的私钥。这很好用,除非我需要升级到 root。

当我sudo必须从密码管理器中复制一个随机生成的 20 个字符的字符串时,检查我是否确实处于密码提示符下,然后粘贴它以运行我的命令。

我更愿意使用 Yubikey 进行身份验证sudo。我可以找到 101 个指南,介绍如何在sudo将 Yubikey 插入本地主机的情况下在本地主机上进行身份验证,但是当我想通过sudoSSH 在远程主机上进行身份验证时,我该如何将密钥插入本地计算机?

本地和远程主机都运行最新的 Linux/GNU 发行版,具体来说是 RHEL/Fedora(如果有区别的话)。

答案1

pam_ssh_agent_auth,它完全满足您的需求。此软件包适用于 Fedora 和 RHEL,因此设置和安装过程非常简单:

yum install pam_ssh_agent_auth

添加到您的/etc/sudoers

Defaults    env_keep += \"SSH_AUTH_SOCK\"

把你的 ssh-public 密钥放到/etc/security/authorized_keys(例如使用 yubikey 获取ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so

在 的开头添加一行/etc/pam.d/sudo

auth       sufficient   pam_ssh_agent_auth.so

然后您只需将 pkcs11 库添加到您的库中ssh-agent,即可sudo无需密码运行(使用令牌上的密钥进行身份验证):

ssh-add -s /usr/lib64/pkcs11/opensc-pkcs11.so
sudo -i

这个过程在pam_ssh_agent_auth

请注意,yubikey 上的密钥需要提前生成,但这在 Yubico 文档中已经描述过。

相关内容