プロキシチェーンを使用してマシンをピボットオフする必要がある作業を行っているので、システムに接続して、そのようにローカルポートをバインドしています...
ssh -f -N -D 9000 [email protected]
…接続を開いた後、コマンドプロンプトに戻ります。次に、プロキシチェーンなどを使用して、Host.com
を介してコマンドを実行できます。
私の質問は、Host.comでリモートシェルを取得できるように、同じセッションに接続/対話するにはどうすればよいですか?私が今やっている方法は、単純なssh [email protected]
で別のsshセッションを開くことですが、私が開いた最初のセッションを利用する方法が必要だと思います。
マルチプレックスを有効にして作成されていない場合は、作成できません。
次回次のようにバックグラウンドセッションを開始します。
ssh -f -N -M -S ~/.ssh/[email protected] -D 9000 [email protected]
ここで、-M
はマルチプレックスマスターモードを有効にし、-S
はソケットパスを設定します。
これで、ssh -S ~/.ssh/[email protected] dummyhost
を使用して、同じ接続で2番目のセッションを開くことができます。 -O exit
、-O check
、およびその他のさまざまなオプションを指定することにより、マスターを制御することができます。 (残念ながら、-O forward
はごく最近追加されたものです。)
これを自動化するには、.ssh/config
で次のオプションを使用できます。
Host *
ControlPath ~/.ssh/S.%l.%r@%h:%p
ControlMaster auto
ControlPersist 10m
ControlPath
を設定すると、毎回-S
を指定する必要がなくなります。
ControlMaster auto
を設定すると、すべての新しい接続がマルチプレックスマスターとしてバックグラウンドで自動的に続行されます。 (それがなくても、ssh -fNM Host
で新しいマスターを開始できます)。
ControlPersist 10m
を設定すると、アクティブなセッションがない場合、自動マスターは10分間留まります。 (これは最近追加されたオプションです。)
多重接続を介したバッチ転送により、インタラクティブセッションが非常に遅くなることに注意してください...
-f(バックグラウンドSSH)および-N(リモートコマンドを実行しない)パラメーターは省略して、次を使用します。
ssh -D 9000 [email protected]