web-dev-qa-db-ja.com

中間マシンでXを使用する

編集:WORKマシンでsshd_configファイルを正しく設定しませんでした。 X11Forwarding noの行のコメントを外しても、「はい」ではなく「いいえ」と表示されていることに気づきませんでした。デフォルトは「no」なので、あまり注意を払わずに、コメントを外すとX11Forwarding yesになると思いました。

私は公共の機械、MIDDLEを持っています。別のマシンが稼働しています。自宅のコンピューターからアクセスできるようにしたいWORK:HOME。

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

X11Forwardingを有効にしてWORKでSSHサーバーを実行しています。 WORKからMIDDLEへのリバーストンネルを設定し、HOMEからssh -X MIDDLE、次にssh -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

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

3
mtahmed

「新しい」(実際にはそれほど新しいものではない)コマンドラインフラグ-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

(私は実際のネットワークでもテストしました。[〜#〜] middle [〜#〜]マシンは間違いなくX11のないサーバーなので、機能します)

2
umläute

平野

ssh -Y user1@MIDDLE -p 33333

hOMEでトリックを行う必要があります。 MIDDLEではssh -Y user2@localhost -p 33333は必要ありません。

0
peterph