テスト環境として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ベースのプログラムを起動できるはずです。画面に表示されます。誰かが私が間違っていることを知っていますか?
ssh
セッションでXアプリを実行する場合は、トラフィックを伝送するようにssh
に指示する必要があります。 xhost
を実行したり、DISPLAY
をオーバーライドしたりしないでください。
ssh -Yf remote-Host some-x-application
-Y
フラグは、ssh
にremote-Host
にDISPLAY
環境変数を作成し、暗号化された接続を介して結果のトラフィックを伝送するように指示します。 -f
フラグは、セッションがすぐに終了したように見えるように、これらすべてをバックグラウンドで実行するようにssh
に指示します。
ssh
接続の最後でインタラクティブシェルを視覚的に実行したい場合は、次のようなこともできます。
ssh -Y remote-Host
...log in as necessary...
some-x-application &
another-x-application &
...etc...
wait; exit