Come si possono inviare comandi alla sessione ssh "interna"?


32

Immagina uno scenario in cui sono connesso a un server (che chiameremo "Wallace") dal mio computer locale e da lì ssha un altro server (che chiameremo "Gromit"):

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

Quindi la sessione SSH da Wallace a Gromit si blocca e voglio ucciderla. Se entro ~.per uccidere SSH, uccide la sessione SSH dal mio laptop a Wallace, perché ~viene intercettato da quella sessione SSH e .viene preso come comando per uccidere la sessione. Come posso inviare un comando alla sessione ssh tra Wallace e Gromit? Come uccido il mio ssh "interiore"?


A proposito: alcuni layout di tastiera potrebbero richiedere due volte la pressione del tasto '~' per stampare un carattere '~'. Uso spesso lo schermo, quindi quando si perde una connessione SSH posso semplicemente avviare un'altra shell uccidendo questa sessione.
— matematica,

Risposte:


42

Aggiungi un'altra tilde (ovvero, digita ~~.). Ogni tilde successiva viene mangiata dalla sessione ssh più esterna che non ne ha ancora mangiata una, ma se il personaggio successivo è un'altra tilde, viene passato alla sessione successiva in.

Se, da gromit 1 , sei stato inviato a un terzo host (chiamiamolo wensleydale), allora lasceresti ~~~.cadere la sessione su wensleydale e ti restituirebbe un prompt su gromit.

1 E che grande server che è; quanto spesso ho sentito un commento dello sviluppatore "cracking host, gromit"?


2
Correlati: The Telnet Song
— voretaq7,

1
Oh, è meraviglioso; Non riesco a credere di non averlo mai visto prima.
— MadHatter supporta Monica il

Sarebbe bello se ci fosse un modo per ottenere un riscontro visivo di quanto sei in fondo allo stack, nel caso in cui tu abbia laptop --> Wallace --> Gromit --> Shaun --> Timmyqualcosa di così folle ...
— iconoclast

-2

È possibile emettere comandi arbitrari e catturare l'output dalla shell più interna in una variabile

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

1
Questo è molto interessante, ma non sono sicuro di come si rapporta alla domanda. Puoi spiegare?
— iconoclasta il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.