Reiniciando um serviço remotamente com erros ssh e sudo

1

Estou usando o seguinte comando para tentar reiniciar um serviço

ssh username@server "systemctl restart storeapp.service"

No entanto, estou recebendo a seguinte mensagem de erro.

Failed to stop storeapp.service: Interactive authentication required.

Eu então tentei

ssh -t username@server "systemctl restart storeapp.service"

Isso falha porque não está usando o nome de usuário correto para autenticar e está ignorando username@server para algum outro usuário. %código%. Eu também tenho chaves ssh definido. Como posso superar isso? Ou isso é um problema de permissões de administrador de sistemas?

Se eu executar Authenticating as : otheruser , isso funciona e posso ver o status do meu serviço.

    
por user3525290 31.08.2018 / 13:15

1 resposta

0

Bem, a maneira mais fácil de corrigir isso provavelmente seria adicionar:

<username> ALL = NOPASSWD: /bin/systemctl restart storeapp.service

Para um arquivo em /etc/sudoers.d , algo como: /etc/sudoers.d/storeapp no servidor de destino.

Isso permitirá que você execute o comando sudo systemctl restart storeapp.service sem que seja solicitada uma senha.

Exemplo de trabalho usando ufw
No host de destino (Ubuntu 18.04):

sudo cat /etc/sudoers.d/ufw 
maulinglawns ALL = NOPASSWD: /bin/systemctl restart ufw

No seu servidor:

ssh -t maulinglawns@<remote> 'sudo /bin/systemctl restart ufw'
maulinglawns@<remote>'s password: 
Connection to <remote> closed.
echo $?
0

Como você pode ver acima, sou solicitado uma vez (já que não uso uma chave), mas não para o comando sudo . E o status de saída nos diz que conseguimos reiniciar ufw sem senha. Que eu também posso verificar, verificando /var/log/syslog .

Obviamente, isso só funcionará se você tiver a) root acesso ao servidor de destino, caso contrário b) perguntará ao sysadmin, se isso for possível / ou aceitável. Se a) sempre usar visudo ao editar / criar arquivos sudoer!

If I run ssh username@server "systemctl status storeapp.service" that works and I can see the status of my service.

Sim, status nem sempre exige direitos elevados.

    
por 31.08.2018 / 13:52