web-dev-qa-db-ja.com

2つのSSHトンネルを介してXを転送する方法は?

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

ArchLinuxワークコンピューター-> OpenBSD SSHルーター(自宅)-> Arch Linuxホームコンピューター(SSH付き)

私は実際にこれをやろうとしたことがなく、その方法がよくわかりません。これをどのように機能させるのですか?

やってみたら

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

最後のトンネル「チャネル0でX11転送要求が失敗しました」に到達しました

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

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

1
Earlz

仕事用コンピューターのポートを自宅のコンピューターのポート22に転送してからssh -Yそのローカルポートに?

例えば、

ssh -L 2222:private-ip:22 router-ip
ssh -Y localhost:2222
4
billc.cn

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

自宅のコンピューターに接続したら、$DISPLAY変数を確認します。 localhost:10のようなものにする必要があります。そうでない場合は、ルーターのシェルに戻り、そこで$DISPLAYを確認します。

2
Wyzard