SSH - 3台のコンピュータ間にトンネルを設定するには?

SSH - 3台のコンピュータ間にトンネルを設定するには?

ComputerA は putty を介してサーバーのポート 77 に接続され、サーバーのポート 6666 から ComputerA のポート 22 にリバース トンネルが確立されます。 ComputerAには、ComputerA_user_nameという名前のユーザーアカウントに設定されたSSHサーバーもあります。

コマンドを使用して、ComputerBからサーバーにSSH経由で接続できますssh admin@Server -p 9000 -D 6000。その後、私のコンピュータのComputerBでポート6000にソックスプロキシ接続を確立し、サーバーを介して実行するRubyプログラムを実行しました。 Rubyプログラムがプロキシを介してComputerBからComputerAに接続できるようにする方法は?

ssh -D 9000 localhost -p 6666 -l ComputerA_user_name今試しているのは、ComputerBからサーバーへ、そしてサーバーからComputerAにバインドするためにComputerBからSSHに接続してからサーバーでこのコマンドを実行することです。しかしbind: Address already in use

答え1

私は答えを見つけました

https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

中間ホストを介したSOCKSプロキシ

中間ホストを介してSOCKSプロキシを開くには、次の手順を実行できます。

$ ssh -L 8001:localhost:8002 [email protected] -t ssh -D 8002 [email protected]

クライアントは実際にはmachine1への接続であるlocalhostのポート8001でSOCKSプロキシを表示し、トラフィックは最終的にmachine2を介してネットワークに入って来ます。 localhostのポート8001は、machine2のSOCKSプロキシであるmachine1のポート8002に接続されます。必要に応じてポート番号を選択できますが、特権ポートを転送するにはまだroot権限が必要です。

だから私の場合は、以下を使用しました。

ssh -L 6000:localhost:6001 -p 9000 admin@ip
ssh -D 6001 -p 6666 localhost -l username -N

関連情報