「内部」sshセッションにコマンドを送信するにはどうすればよいですか?


32

ローカルマシンからサーバー(「Wallace」と呼びます)にログインし、そこからssh別のサーバー(「Gromit」と呼びます)にログインするシナリオを想像してください。

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

その後、ウォレスからグロミットへのsshセッションがハングアップします。これを強制終了します。~.sshを強制終了するために入力すると、ラップトップからWallaceへのsshセッションが強制終了されます。これは、sshセッション~によってインターセプトされ、セッションを強制終了.するコマンドとして使用されるためです。WallaceとGromitの間のsshセッションにコマンドを送信するにはどうすればよいですか?「内部」sshを強制終了するにはどうすればよいですか?


参考:一部のキーボードレイアウトでは、1つの「〜」文字を印刷するために「〜」キーを2回押す必要があります。私は頻繁に画面を使用するので、ssh接続が失われた場合、別のシェルを起動してこのセッションを強制終了できます。
数学

回答:


42

別のチルダを追加します(つまり、タイプします~~.)。連続する各チルダは、まだ1つを食べていない最も外側のsshセッションによって食べられますが、次の文字が別のチルダである場合、次のセッションに渡されます。

gromit 1から3番目のホストにsshした場合(wensleydaleと呼びましょう)、~~~.wensleydaleにセッションをドロップし、gromitのプロンプトに戻ります。

1そして、なんという素晴らしいサーバーでしょう。開発者が「クラッキングホスト、ひどい」という発言をどのくらいの頻度で聞いたことがありますか?



1
ああ、それは素晴らしいです。以前に出会ったことがなかったとは信じられません。
MadHatterは、

どこまであなたがスタックダウンの視覚的なフィードバックを得るためにいくつかの方法があった場合、それはあなたが持っている場合には、素晴らしいことだlaptop --> Wallace --> Gromit --> Shaun --> Timmy...またはそのようなクレイジーな何か
アイコノクラスト

-2

任意のコマンドを発行し、最も内側のシェルからの出力を変数にキャッチできます

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

1
これは非常に興味深いですが、それが質問にどのように関係するのかわかりません。説明できますか?
iconoclast
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.