パブリックにアクセスできないサーバーからhost2
のみアクセスできるサーバーにVNCトラフィックをトンネリングしたいです。host1
host1
次の説明に従って、マルチホップSSHトンネルを確立しました。この問題、使用:
ssh -L 5901:localhost:6000 host1 ssh -L 6000:localhost:5901 -N host2
これは仕事を完全に行います。しかし、入れ子になったトンネルを正しく閉じる方法がわかりません。頑張ったCtrl+Cssh
しかし殺人事件は今回が初めてのようですhost1
。ただし、ssh
間の2番目のトンネルは開いたままです。host1
host2
また、オプションを使用すると実際のオンを-N
取得できないため、単に起動できません。それ以外の場合はまだ受信されませんが、代わりに次のエラーが発生します。tty
host2
exit
-N
tty
Pseudo-terminal will not be allocated because stdin is not a terminal.
Warning: no access to tty (Bad file descriptor).
Thus no job control in this shell.
term: Undefined variable.
私は、ホスト1とホスト2の両方がRHEL 6を実行しているMacOS Xで接続しています。
答え1
ttyの使用方法は正しいです。この-t
オプションが提供されます。ただし、実際の目標が対話するttyセッションを取得していない場合は、チェーンの最後のsshコマンドにこのオプションを残してください。あなたの場合は、初めて接続するときにのみこれを使用する必要があります。
ssh -L 5901:localhost:6000 host1 -t ssh -L 6000:localhost:5901 -N host2
今あなたが使うときCtrl-C、すべてのホスト間にトンネルが確立されます。