Existe pam_ssh_agent_auth
, que faz exatamente o que você precisa. Este pacote está disponível tanto para o Fedora quanto para o RHEL, então o processo de configuração e instalação é muito direto:
yum install pam_ssh_agent_auth
Adicione ao seu /etc/sudoers
:
Defaults env_keep += \"SSH_AUTH_SOCK\"
Coloque sua chave ssh-public em /etc/security/authorized_keys
(obtenha do yubikey, por exemplo, usando ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so
)
Adicione uma linha ao início de /etc/pam.d/sudo
:
auth sufficient pam_ssh_agent_auth.so
Em seguida, basta adicionar a biblioteca pkcs11 ao seu ssh-agent
e executar sudo
sem senha (autenticando usando a chave no token):
ssh-add -s /usr/lib64/pkcs11/opensc-pkcs11.so
sudo -i
Este processo também é descrito na página de manual para pam_ssh_agent_auth
.
Note que as chaves no yubikey precisam ser geradas antes, mas isso já está descrito na documentação do Yubico.