piping ssh para um script de shell e não ver stdin echo

1

Eu tenho um script awk em .bashrc que lê caracteres e modifica algumas palavras-chave. Ele funciona perfeitamente quando eu pipe tail -f e outros comandos básicos através dele, mas eu tenho um problema quando eu canalizo ssh através dele. Tudo funciona bem como esperado, exceto que não consigo ver nada que eu digite no terminal até que eu pressione retorno:

~# ssh admin@localhost -p 5200 | my-script

admin@localhost's password: 

admin connected from 127.0.0.1 using ssh on home

admin@ssh-server> exit   ***<- I don't see this line (including the prompt) at all on terminal until I type my command (exit) and press Enter***

Connection to localhost closed.

Eu acho que eu entendo porque está se comportando assim, mas não sei como consertar isso. Eu acho que os comandos interativos para ssh não são enviados através de pipe até que o EOL seja retornado. Eu tentei tudo que encontrei pesquisando de unbuffer / stdbuf para tee / script e jogando com vários comandos de redirecionamento, mas todos sem sorte.

Nota : Eu estou realmente ok que as seqüências são passadas para o meu script após EOL, eu só preciso ser capaz de ver o que estou digitando ou seja, precisa stdin terminal para ecoar como de costume .

    
por lamp 15.08.2017 / 03:44

1 resposta

1

Eu posso fazer o seguinte:

$ ssh [email protected] | tee output
Last login: Tue Aug 15 03:06:11 2017 from 127.1.2.3
$ ls /
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
$ logout
Shared connection to example.com closed.
$ cat output
Last login: Tue Aug 15 03:06:11 2017 from 127.1.2.3
$ ls /
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
$ logout

Eu vejo o prompt, minha entrada e tudo mais quando ssh ed no host remoto como normal.

    
por 15.08.2017 / 05:09

Tags