Condições da mensagem
De acordo com esta parte do código-fonte portátil OpenSSH , duas condições são necessário imprimir esta mensagem:
-
A alocação de pseudo-tty
- está ativada (-t), como você já notou
- o nível de log deve ser diferente de QUIET
Solução para suprimir a mensagem
- Adicione
-o LogLevel=QUIET
à sua linha de comandossh
. - Edite ~ / .ssh / config e adicione
LogLevel QUIET
nos blocosHost
relevantes.
Por exemplo, eu uso essa linha em um script sh conectando-se a vários servidores para executar comandos do Docker, alguns potencialmente interativos:
SSH = "ssh -t -o LogLevel=QUIET"
Aviso: qualquer erro é descartado
Uma desvantagem desse método é que isso também suprime erros fatais do SSH.
$ ssh -t -o LogLevel=QUIET notexisting.notld ssh anotherone.notld
$
Alternativa: registra a saída do stderr em vez de imprimi-lo
Se stderr ainda for considerado importante para obter, uma alternativa é redirecionar stderr para syslog, com ssh -t -y
(mas, então, você inundaria seu log com todas aquelas Shared connection to <host> closed
messages).