2 つの SSH トンネルを介して X を転送するにはどうすればよいですか?

2 つの SSH トンネルを介して X を転送するにはどうすればよいですか?

職場のコンピュータから自宅のコンピュータで X プログラムを実行しようとしています。基本的な設定は次のとおりです。

Arch Linux の職場用コンピュータ -> OpenBSD SSH ルーター (自宅) -> Arch Linux の自宅用コンピュータ (SSH あり)

実際にこれを試したことがないので、やり方がよくわかりません。どうすればこれが機能するのでしょうか?

やってみると

$(work computer) ssh -Y home-ip
..
$(home router) ssh -Y private-ip

最後のトンネルで「チャネル0でX11転送要求が失敗しました」というメッセージが表示される

これを適切に行うにはどうすればいいでしょうか?

編集: 自宅のコンピュータの sshd で X 転送を有効にするのを忘れていました。今は修正しましたが、次のような簡単なコマンドを実行しても何も起こらないようですxterm。おそらく、仕事用のコンピュータではなくルーターの xterm ウィンドウを表示しようとしているため、そのままになっています。

答え1

職場のコンピューターのポートを自宅のコンピューターのポート 22 に転送し、さらにssh -Yそのローカル ポートに転送するのはどうでしょうか?

例えば、

ssh -L 2222:private-ip:22 router-ip
ssh -Y localhost:2222

答え2

実行した内容は機能するはずですが、SSH が作成する仮想 X11 ディスプレイのセキュリティ キーを作成できるように、ルーターにプログラムをインストールする必要があります。xauth実際に X アプリケーションを実行せず、他の場所へのステップとして使用する場合でも、使用するxauthマシンに必要です。ssh -Xssh -Y

自宅のコンピュータに接続したら、$DISPLAY変数を確認してください。 のような値になっているはずですlocalhost:10。 そうでない場合は、ルーターのシェルに戻って確認してください$DISPLAY

関連情報