Ssh
通過 SSH 會話使用 Yubikey 進行 sudo
我目前使用Kryptonite來保護用於 SSH 進入主機的私鑰。這很好用,除非我需要升級到 root。
當我
sudo
必須從我的密碼管理器中複製一個隨機生成的 20 個字元的字元串時,請檢查我是否真的在密碼提示符處,然後將其粘貼以執行我的命令。我更願意使用我的 Yubikey 進行身份驗證
sudo
。我可以找到 101 條指南,了解如何在sudo
將 Yubikey 插入本地主機的情況下在本地主機上執行此操作,但是當我想sudo
通過 SSH 在遠端主機上使用插入本地電腦的密鑰時如何執行此操作?本地和遠端主機都在執行最近的 Linux/GNU 發行版,特別是 RHEL/Fedora,如果它有所作為的話。
有
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 文件中進行了描述。