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.