Porque é assim que o comando foi executado - sem qualquer controle tty.
Você não transmitiu nenhuma opção -t
para ssh
e ssh
não aloca um pseudo-terminal por padrão quando é chamado com argumentos, como no seu caso. ( ssh cl14470 "echo ..."
).
Este é o comportamento padrão, conforme descrito no ssh(1)
manpage:
When the user's identity has been accepted by the server, the server either executes the given command in a non-interactive session or, if no command has been specified, logs into the machine and gives the user a normal shell as an interactive session. All communication with the remote command or shell will be automatically encrypted.
If an interactive session is requested ssh by default will only request a pseudo-terminal (pty) for interactive sessions when the client has one. The flags -T and -t can be used to override this behaviour.
Portanto, ssh
só alocará um pseudo-terminal na máquina remota por padrão se a) for executado sem argumento (s) de 'comando' < strong> eb) o stdin do cliente ssh na máquina local é um tty.
A opção -t
está forçando ssh
a alocar uma pseudo-tty e a opção -T
está forçando-a a não alocar uma, independentemente de outros fatores.