DISPLAY変数にホスト名/ IPを指定できるようにSSHをどのように設定しますか?

DISPLAY変数にホスト名/ IPを指定できるようにSSHをどのように設定しますか?

CentOS6で実行したい古いアプリケーションがあり、abc1やabc2など、いくつかのシステムを使用しています。

私はabc1にログインし、sshを介してabc2に接続されたアプリケーションを実行し、変数をDISPLAY新しいabc1:0.0ウィンドウを開こうとするプロセスを実行しました。しかし失敗します。cannot open display

ssh -X abc2orを実行するとssh -Y abc2問題なくxtermを開くことができますが、DISPLAY変数は次のように設定されます。localhost:10.0

abc1が正しく解析されることに注意してください(abc2でabc1をpingできます)。

アプリケーションをまったく変更できないため、アプリケーションDISPLAYが使用する変数を制御できません。ただし、abc1 と abc2 の設定を変更できます。私は孤立したネットワークにあり、セキュリティには興味がありません。

SSH設定に何かがあるか、abc1:0.0これが機能するように変更できる他のものはありますか?

ベストアンサー1

ローカルにログインしている場合abc1は関係ないかもしれませんが、SSH X11転送を使用してワークステーションから接続している場合はabc1起動できます。ネストされたXサーバーabc1着信接続をキャプチャして、安全なabc1:0.0SSH X11トンネル内のワークステーションのローカルXサーバーに転送します。

RHEL / CentOS 6で必要なRPMパッケージは、またはxorg-x11-xserver-Xnestxorg-x11-xserver-Xephyr最新の実装であればパフォーマンスが向上します)。

オリジナル:

  • 通常のXサーバーをabc1TCP接続を受信しないデフォルトの状態にしてください。
  • ワークステーションでローカルXサーバーを実行する
  • ワークステーションでX11転送SSH接続を確立します。abc1
  • 適切なオプションを使用してバックグラウンドでリスニングを開始またはXnest許可します。Xephyrabc1abc1:0.0
  • アプリケーションを起動してください。

この質問に関する@roaimaのコメントをご覧ください。古いXアプリケーションを使用しても、アプリケーションにDISPLAY設定をハードコードすることは常に非常に面倒です。

DISPLAY変数は設定可能な場所に設定される可能性が高いです。たとえば、アプリケーションの実行に使用されるユーザーアカウントのログインスクリプトで指定できます。ただし、修正がアプリケーションの修正と見なされる場合は、推奨回避策を使用する必要があります。

おすすめ記事