web-dev-qa-db-ja.com

リモートシステムでのXプログラムの表示

テスト環境としてUbuntu14.04とFedora20を使用しています。 SSHセッションを介してFedoraからUbuntuにXプログラムを送信しようとしています。私の設定は次のとおりです。

Ubuntuで実行された:

Xhost +IP Address of Fedora

これは次を返します:

10.10.24.153 being added to access control list

次に、Fedoraシステムから次のコマンドを実行します。

DISPLAY=10.10.25.168:0.0

このステップでは、FedoraのディスプレイをUbuntuシステムにリダイレクトします。

次に、UbuntuからFedoraにSSH接続します。この時点で、sshプロンプトからgeditなどのプログラムを起動しようとすると、次のように表示されます(geditウィンドウは表示されません)。

Unable to init server: Could not connect: Connection refused (gedit:7358): Gtk-WARNING **: cannot open display:

ただし、Fedoraから直接geditを起動すると、Fedora側でエラーが発生しますが、Ubuntuシステムに表示されます。

** (gedit:7372): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-77RFAr0MHI: Connection refused

SshセッションからXベースのプログラムを起動できるはずです。画面に表示されます。誰かが私が間違っていることを知っていますか?

2
user53029

sshセッションでXアプリを実行する場合は、トラフィックを伝送するようにsshに指示する必要があります。 xhostを実行したり、DISPLAYをオーバーライドしたりしないでください。

ssh -Yf remote-Host some-x-application

-Yフラグは、sshremote-HostDISPLAY環境変数を作成し、暗号化された接続を介して結果のトラフィックを伝送するように指示します。 -fフラグは、セッションがすぐに終了したように見えるように、これらすべてをバックグラウンドで実行するようにsshに指示します。

ssh接続の最後でインタラクティブシェルを視覚的に実行したい場合は、次のようなこともできます。

ssh -Y remote-Host
...log in as necessary...

some-x-application &
another-x-application &
...etc...

wait; exit
4
roaima