Em geral, eu podia ouvir em tempo real o áudio no computador remoto como:
ssh me@gate rec -t mp3 - | play -
por exemplo, no computador nomeado gate
eu poderia executar o comando rec
(ou sox
) e o fluxo de áudio é transferido pela rede, para que eu pudesse reproduzi-lo em tempo real através do comando play
(ou sox
).
Isso funciona bem, especialmente porque eu tenho acesso sem senha ao gate
do meu notebook (usando authorized_keys & authorized_keys2
).
Mas minha topologia é:
+----+ internet +------+ lan +----------+
| my | ----------> | gate | -----> | internal |
+----+ +------+ +----------+
e eu preciso executar o rec
no internal
comp e stdout
deve ser canalizado para o play
comando no my
computador.
Então, quando estou em cascata (aninhando), ssh
s como:
ssh -t me@gate ssh me@internal rec -t mp3 -
(note o -t
para ssh
)
- portanto, o
gate
é acessado sem senha - no
gate
é executado o segundo (aninhado)ssh
- então o
internal
me pede a senha (-t
) - e quando digito a senha,
internal
orec
comando inicia corretamente - e eu pude assistir ao lixo de dados binários recebido no meu terminal local.
Infelizmente, isso não funciona quando estou tentando canalizar para play
, por exemplo, este
ssh -t me@gate ssh me@internal rec -t mp3 - | play -
não funciona, porque a Password:
string foi redirecionada (por exemplo, não solicitei a senha) e a play
confusão foi confusa.
A configuração do acesso sem senha entre me@gate
-> me@internal
provavelmente pode resolver o problema, mas não quero isso - quero inserir manualmente a senha na internal
comp.
Alguma idéia de como resolver isso?
-t
não pede uma senha ... " Desativar alocação de pseudo-terminal " .Respostas:
Presumo que
internal
ouça na22
porta padrão .Primeiro construa um túnel:
Em seguida, conecte-se através do túnel. Esta conexão terminará em
internal
:Você deve solicitar sua senha,
internal
apesar do tubo estar sendo usado.ssh -L …
é explicado na minha resposta a outra pergunta .fonte
Presumo que o prompt de senha não atrapalhe se o seu laptop puder acessar
internal
diretamente?Nesse caso, brinque com a
ProxyCommand
opção de configuração.Coloque algo assim em seu
~/.ssh/config
Isso deve permitir que você simplesmente execute
ssh internal-via-gate
, como se estivesse se conectando diretamente.Caso contrário, talvez considere o encaminhamento de porta:
Em seguida, conecte e autentique (
ssh internal-via-gate
).Depois de fazer login, execute:
rec -t mp3 - | nc -l 27015
no controle remoto enc localhost 27015 | play -
na máquina local.fonte