Sto cercando di eseguire un comando su SSH in questo modo in un documento qui:
ssh example.com <<END
sudo /etc/init.d/apache2 reload
END
Che normalmente funziona tranne quando sto cercando di eseguire qualcosa che necessita di input, come la password per sudo. In tal caso, ricevo il seguente messaggio:
sudo: no tty present and no askpass program specified
So di poter usare il -t
flag su SSH per allocare una pseudo-tty come questa:
ssh -t example.com "sudo /etc/init.d/apache2 reload"
E funzionerà, ma quando provo la stessa cosa con here-document, non funziona e otterrò lo stesso errore per l'assenza di tty:
ssh -t example.com <<END
sudo /etc/init.d/apache2 reload
END
Qualche idea su come posso farlo funzionare?
Inoltre, nel caso ti stia chiedendo perché voglio che funzioni con il documento here invece di passarlo sulla stessa riga, è perché i comandi di input (possono essercene alcuni) provengono da un file di configurazione letto da uno script e ho sentito che evita il problema di sfuggire ai comandi per le virgolette, le virgolette doppie, ecc.