Como alguém pode enviar comandos para a sessão ssh "interna"?


32

Imagine um cenário em que estou logado em um servidor (que chamaremos de "Wallace") da minha máquina local e de lá sshem outro servidor (que chamaremos de "Gromit"):

laptop ---ssh---> Wallace ---ssh---> Gromit

Então a sessão ssh de Wallace a Gromit trava, e eu quero matá-la. Se eu entrar ~.para matar ssh, ela matará a sessão ssh do meu laptop para Wallace, porque ela ~é interceptada por essa sessão ssh e .é tomada como um comando para matar a sessão. Como envio um comando para a sessão ssh entre Wallace e Gromit? Como eu mato meu ssh "interno"?


FYI: Alguns layouts de teclado podem exigir que seja pressionada duas vezes a tecla '~' para imprimir um caractere '~'. Costumo usar a tela para que, quando uma conexão ssh seja perdida, eu possa simplesmente iniciar outro shell, finalizando esta sessão.
math

Respostas:


42

Adicione outro til (ou seja, tipo ~~.). Cada til sucessivo é comido pela sessão ssh mais externa que ainda não comeu uma, mas se o próximo personagem for outro til, ele será passado para a próxima sessão em.

Se, a partir do gromit 1 , você transferisse para um terceiro host (vamos chamá-lo de wensleydale), então ~~~.encerraria a sessão em wensleydale e retornaria você a um prompt no gromit.

1 E que ótimo servidor; Quantas vezes eu ouvi um desenvolvedor comentar "cracking host, gromit"?


2
Relacionados: O Telnet Canção
voretaq7

11
Oh, isso é maravilhoso; Não acredito que não me deparei com isso antes.
MadHatter suporta Monica

Seria ótimo se houvesse alguma maneira de obter feedback visual de quão baixo da pilha você está, no caso você tem laptop --> Wallace --> Gromit --> Shaun --> Timmyou algo louco assim ...
iconoclasta

-2

Você pode emitir comandos arbitrários e capturar a saída do shell mais interno em uma variável

export output=`echo some_cmd | ssh user@host |  echo some_cmd2 | ssh user2@host2`

11
Isso é muito interessante, mas não tenho certeza de como isso se relaciona com a questão. Você pode explicar?
Iconoclast
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.