テスト環境としてUbuntu 14.04とFedora 20があります。 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ベースのプログラムを起動できる必要があり、それが画面に表示されます。私が間違っていることを知っている人はいますか?
答え1
ssh
セッションでXアプリケーションを実行するには、ssh
トラフィックをホストするように指示するだけです。実行xhost
または上書きしないでくださいDISPLAY
。
ssh -Yf remote-host some-x-application
この-Y
フラグは環境変数を生成し、暗号化されssh
た接続を介して結果のトラフィックを送信するように指示します。このフラグは、セッションがすぐに終了したように見えるように、これらすべての操作をバックグラウンドで実行するように指示します。DISPLAY
remote-host
-f
ssh
接続の終わりに明らかに対話型シェルを実行するには、ssh
次のこともできます。
ssh -Y remote-host
...log in as necessary...
some-x-application &
another-x-application &
...etc...
wait; exit