Eu tenho este comando que é executado corretamente quando executado no terminal:
ssh someuser@someserver -t "sudo systemctl start someservice"
Nenhuma senha solicitada para ssh, há uma chave pública para conectar, someuser
pode executar sudo para iniciar someservice
sem senha.
Preciso inserir o comando acima no crontab. Infelizmente não é executado; Suspeito que o problema surja do uso ssh -t
do pseudo-terminal necessário para o sudo. Parece que o pseudo-terminal não pode ser implementado por meio do cron (minha suposição, sem evidências concretas).
Para resumir, meu objetivo é executar o comando, sem interação, em um intervalo de tempo. Alguma idéia de como classificar isso seguindo o método existente?
Alternativas de trabalho bem-vindas.
Como eu inicialmente suspeitava, o problema era
ssh -t
.A solução, adicionei isso
/etc/sudoers
no lado do servidor SSH:Não sei dizer
requiretty
para que serve. Por segurança, desativei-o apenas para um usuário, não globalmente. Não parece afetar este usuário em outros aspectos.