Sim. É possível usar pam_ssh_agent_auth package se sua distribuição fornecer. Ele pode permitir que você execute o sudo com base no módulo pam, que verifica a posse da chave ssh no ssh-agent.
História curta
Configuração
- Instale o pacote
pam_ssh_agent_authdo gerenciador de pacotes -
Modifique
/etc/sudoers, preferencialmente usandovisudoe adicione linhaDefaults env_keep += "SSH_AUTH_SOCK" -
Edite
/etc/pam.d/sudoe adicione (como segunda linha após#%PAM-1.0)auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keyse comente a linha
#auth include system-authpara não permitir a autenticação normal do sistema para o comando sudo
-
Crie o par de chaves "privilegiado" que deve ter acesso ao comando
sudoe à parte pública da loja como/etc/security/authorized_keysno servidor.ssh-keygen -t rsa -b 2048 cat ~/.ssh/id_rsa > /etc/security/authorized_keys
Uso
-
No cliente, abra o ssh-agent e adicione a chave acima mencionada:
eval $ (ssh-agent) ssh-add ~ / .ssh / id_rsa
-
Conecte-se ao servidor com o encaminhamento de agentes
ssh -K server
-
Execute o sudo como quiser
Isso funciona bem em sistemas Fedora / RHEL / CentOS, pelo que testei até agora.