CentOS6で実行したい古いアプリケーションがあり、abc1やabc2など、いくつかのシステムを使用しています。
私はabc1にログインし、sshを介してabc2に接続されたアプリケーションを実行し、変数をDISPLAY
新しいabc1:0.0
ウィンドウを開こうとするプロセスを実行しました。しかし失敗します。cannot open display
ssh -X abc2
orを実行すると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.0
SSH X11トンネル内のワークステーションのローカルXサーバーに転送します。
RHEL / CentOS 6で必要なRPMパッケージは、またはxorg-x11-xserver-Xnest
(xorg-x11-xserver-Xephyr
最新の実装であればパフォーマンスが向上します)。
オリジナル:
- 通常のXサーバーを
abc1
TCP接続を受信しないデフォルトの状態にしてください。 - ワークステーションでローカルXサーバーを実行する
- ワークステーションでX11転送SSH接続を確立します。
abc1
- 適切なオプションを使用してバックグラウンドでリスニングを開始または
Xnest
許可します。Xephyr
abc1
abc1:0.0
- アプリケーションを起動してください。
この質問に関する@roaimaのコメントをご覧ください。古いXアプリケーションを使用しても、アプリケーションにDISPLAY設定をハードコードすることは常に非常に面倒です。
DISPLAY変数は設定可能な場所に設定される可能性が高いです。たとえば、アプリケーションの実行に使用されるユーザーアカウントのログインスクリプトで指定できます。ただし、修正がアプリケーションの修正と見なされる場合は、推奨回避策を使用する必要があります。