Jak wysyłać polecenia do „wewnętrznej” sesji ssh?


32

Wyobraź sobie scenariusz, w którym jestem zalogowany na serwerze (który nazywamy „Wallace”) z mojego komputera lokalnego, a stamtąd sshna innym serwerze (który nazwiemy „Gromit”):

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

Następnie sesja ssh z Wallace'a do Gromita zawiesza się i chcę ją zabić. Jeśli ~.wejdę, aby zabić ssh, to zabije sesję ssh z mojego laptopa do Wallace'a, ponieważ ~jest przechwytywana przez tę sesję ssh i .jest traktowana jako polecenie zabicia sesji. Jak wysłać polecenie do sesji ssh między Wallace i Gromit? Jak zabić mój „wewnętrzny” ssh?


FYI: Niektóre układy klawiatury mogą wymagać dwukrotnego naciśnięcia klawisza „~”, aby wydrukować jeden znak „~”. Często używam screena, więc kiedy utracę połączenie ssh, mogę po prostu rozpocząć kolejną powłokę zabijającą tę sesję.
matematyka

Odpowiedzi:


42

Dodaj kolejną tyldę (tj. Typ ~~.). Każda kolejna tylda jest zjadana przez zewnętrzną sesję ssh, która jeszcze jej nie zjadła, ale jeśli następna postać jest inną tyldą, jest przekazywana do następnej sesji w.

Jeśli z gromit 1 przełączyłeś się na trzeciego hosta (nazwijmy to wensleydale), wtedy ~~~.przerwałbyś sesję na wensleydale i powrócił do monitu o gromit.

1 Cóż to za wspaniały serwer; jak często słyszę uwagę dewelopera „cracking host, gromit”?


2
Powiązane: Piosenka Telnet
voretaq7,

1
Och, to cudowne; Nie mogę uwierzyć, że wcześniej tego nie spotkałem.
MadHatter obsługuje Monikę

Byłoby wspaniale, gdyby istniał jakiś sposób, aby uzyskać wizualną informację zwrotną o tym, jak daleko jesteś na stosie, na wypadek, gdybyś miał laptop --> Wallace --> Gromit --> Shaun --> Timmylub coś takiego szalonego ...
iconoclast

-2

Możesz wydawać dowolne polecenia i przechwytywać dane wyjściowe z najbardziej wewnętrznej powłoki do zmiennej

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

1
To bardzo interesujące, ale nie jestem pewien, w jaki sposób odnosi się do pytania. Możesz wytłumaczyć?
iconoclast
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.