中間機でXを使う

中間機でXを使う

sshd_config編集:操作コンピュータでファイルを正しく設定していません。その行のコメントを削除しましたが、「X11Forwarding noはい」の代わりに「いいえ」と書かれていることに気づいていませんでした。デフォルトは「いいえ」なので、あまり気にせずにX11Forwarding yesコメントを削除した後の結果であると仮定しました。

真ん中に共用マシンがあります。職場に別のコンピュータであるWORKがあり、私の自宅のコンピュータであるHOMEからそのコンピュータにアクセスできるようにしたいです。

HOMEはMIDDLEにアクセスでき、WORKはMIDDLEにアクセスできますが、MIDDLEはどのマシンにも直接アクセスできず、HOMEとWORKは互いに直接アクセスできません。

X11Forwardingが有効なジョブでSSHサーバーを実行しています。職場から途中まで駅トンネルを設置して自宅ですればssh -X MIDDLEssh -X -p <someport> localhost私は得るX11 forwarding request failed on channel 0

トンネルの設定に使用するコマンドは次のとおりです。

# On machine WORK:
user2@WORK:   $ ssh -R 33333:localhost:22 user1@MIDDLE

# On machine HOME:
user@HOME:    $ ssh -Y user1@MIDDLE
# And then on machine MIDDLE:
 user1@MIDDLE: $ ssh -Y user2@localhost -p 33333

メモ: user1 != user2

私が望むことを達成する方法はありますか?

答え1

「新しい」(実際にはあまり新しくない)cmdlineフラグを使用してみることができます-Y。これはより良いものデリゲート-X。マニュアルから:

     -Y      Enables trusted X11 forwarding.
             Trusted X11 forwardings are not subjected 
              to the X11 SECURITY extension controls.

今これは多くのことを明らかにしません(少なくともリンクに関する限り)。しかし、クイックテストで動作することがわかりました。

   $ ssh -Y localhost   # first connection
   $ ssh -Y localhost   # second connection on top of first connection
   $ xclock

(実際のネットワークでもテストしましたが、真ん中マシンには確かにX11サーバーがないので動作します.)

答え2

明らかに

ssh -Y user1@MIDDLE -p 33333

問題はHOMEで解決する必要があります。ssh -Y user2@localhost -p 33333途中にいる必要はありません。

関連情報