comando sudo dentro do bloco heredoc em uma sessão ssh não está funcionando

4

Quando eu uso o heredoc e coloco todos os comandos dentro do heredoc como,

ssh -t -i master.pem cloud-user@$1 <<EOSSH
sudo service x restart
sudo service y restart
EOSSH

gera erro como

Pseudo-terminal will not be allocated because stdin is not a terminal.

Quando eu adiciono outra opção -t, funciona bem,

ssh -t -t -i master.pem cloud-user@$1 <<EOSSH
sudo service x restart
sudo service y restart
EOSSH

O que significa pseudo-terminal , no contexto de uma sessão ssh?

stdin is not a terminal - O bash não fornece um terminal stdin para o cliente ssh?

O que significa -t e como -t -t é diferente de -t ?

    
por Madhavan Kumar 16.06.2015 / 17:11

1 resposta

5

Como explicado em man ssh :

-t         Force pseudo-tty allocation. This can be used to execute arbi‐
           trary screen-based programs on a remote machine, which can be
           very useful, e.g. when implementing menu services. Multiple -t
           options force tty allocation, even if ssh has no local tty.

    
por 16.06.2015 / 17:17

Tags