Estou tentando executar um comando sobre SSH como este em um documento aqui:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
O que normalmente funciona, exceto quando estou tentando executar algo que precisa de entrada, como a senha do sudo. Nesse caso, recebo a seguinte mensagem:
sudo: no tty present and no askpass program specified
Eu sei que posso usar o sinal -t
no SSH para alocar uma pseudo-tty como esta:
ssh -t example.com "sudo /etc/init.d/apache2 reload"
E vai funcionar, mas quando eu tento a mesma coisa com o here-document, ele não funciona e eu vou ter o mesmo erro de não estar presente:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
Alguma ideia de como posso fazer isso funcionar?
Além disso, caso você esteja se perguntando por que eu quero que ele funcione com o aqui-documento em vez de apenas passá-lo na mesma linha, é porque os comandos de entrada (podem ser alguns) vêm de um arquivo de configuração lido. por um script e ouvi dizer que evita o problema de escapar os comandos para as aspas, aspas duplas, etc.