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_auth
do gerenciador de pacotes -
Modifique
/etc/sudoers
, preferencialmente usandovisudo
e adicione linhaDefaults env_keep += "SSH_AUTH_SOCK"
-
Edite
/etc/pam.d/sudo
e adicione (como segunda linha após#%PAM-1.0
)auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys
e comente a linha
#auth include system-auth
para 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
sudo
e à parte pública da loja como/etc/security/authorized_keys
no 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.