編集: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
。
私が望むことを達成する方法はありますか?
「新しい」(実際にはそれほど新しいものではない)コマンドラインフラグ-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のないサーバーなので、機能します)
平野
ssh -Y user1@MIDDLE -p 33333
hOMEでトリックを行う必要があります。 MIDDLEではssh -Y user2@localhost -p 33333
は必要ありません。