Dependendo de como o sudo foi configurado, ele pode sobrescrever a maioria das variáveis de ambiente. Em particular, é provável que substitua SSH_AUTH_SOCK
e pode sobrescrever HOME
. Isso não é algo que você pode consertar sem alterar a configuração do sudo.
Você pode ver a configuração do sudo (e em particular quais variáveis de ambiente são preservadas) executando sudo -V
como root. É um recurso que você não pode ver a configuração como um usuário sem privilégios.
É possível que o administrador do sistema tenha bloqueado suas permissões sudo para que o script não possa usar as chaves ssh. Esta poderia ser uma política de segurança, e se ela for implementada corretamente, então, por definição, você não pode consertá-la sozinho, você precisará do seu administrador de sistema para alterar a configuração.
É difícil saber o que é necessário sem saber o que o script faz e qual é a configuração do sudo. Talvez uma linha sudoers
como a seguinte possa ajudar (ela diz ao sudo para preservar a variável de ambiente SSH_AUTH_SOCK
se o comando a executar for /path/to/script
):
Defaults!/path/to/script env_keep+=SSH_AUTH_SOCK
Se o script for executado como um usuário que não é você nem root, você terá que conceder a esse usuário permissão para ler suas chaves ou acessar seu agente.