Solaris: ssh -tt sem saída

1

Eu tenho acesso a uma máquina rodando o SunOS 5.10 (chamado solaris). Eu também tenho acesso a uma máquina RedHat (chamada redhat).

ssh -tt parece não me dar saída se for executado de solaris para solaris, mas funciona como esperado de outra forma. Do redhat ao solaris:

redhat$ </dev/null ssh -tt solaris echo ged
ged
Connection to solaris closed.

De solaris para redhat:

solaris$ </dev/null ssh -tt redhat echo ged
tcgetattr: No such device or address
ged
Connection to redhat closed.

De solaris para solaris:

solaris$ </dev/null ssh -tt solaris echo ged
Connection to solaris closed.

Hmm ... parece que o comando não está sendo executado ou a saída é descartada. De solaris para solaris:

solaris$ rm -f /tmp/ged
solaris$ </dev/null ssh -tt solaris touch /tmp/ged
solaris$ ls -l /tmp/ged
-rw-r--r--   1 tange    other          0 Aug  8 07:02 /tmp/ged

Então o comando é claramente executado; é apenas a saída que é descartada.

Como posso obter a saída do ssh?

Plano de fundo

O acima é a essência de um bug no GNU Parallel e é por isso que < / dev / null e -tt são necessários:

  • < / dev / null é porque executamos vários comandos em paralelo, assim eles não pode obter o tty atual.
  • -tt é necessário porque senão o Ctrl-C não funcionará remotamente.

Atualizar

Parece que é devido a esse bug: link

Uma solução parece ser pegar um PTY do Perl e usá-lo:

perl -MIO::Pty -e '$pty = new IO::Pty; print $t=$pty->ttyname(),"\n"; print 'openssh-5.0p1/ssh -tt solaris.p echo foo < $t''

Infelizmente IO: Pty não está instalado no Solaris 5.10 e não é apenas um pacote Perl, mas também um arquivo .xs - portanto, também é necessário um compilador C; portanto, não é uma boa solução.

Então a questão é: O SunSSH 1.1 e o OpenSSH 5.0 podem ser usados para contornar isso - possivelmente com a ajuda do Perl?

    
por Ole Tange 08.08.2013 / 10:39

0 respostas