web-dev-qa-db-ja.com

WSLマシンからのX11転送を設定できません

SSHセッションを介してGUIプログラムを起動できることを期待して、SSH対応のリモートマシンに次の設定を入れました。

# These settings shall go to `/etc/ssh/sshd_config`.
X11Forwarding yes
X11UseLocalhost no
AllowAgentForwarding yes
X11DisplayOffset 10

XmingとWSLを搭載したWindows10マシンを使用していますローカル。すべてのローカル+リモートマシンで、export DISPLAY=0:0~/.bashrcを設定しました。これは、ローカルで実行されているXmingのデフォルト設定と一致します。


それでも、ホストによって異なる動作をします。

  • ホストがLinuxマシンの場合、ssh -X user@Hostを使用して接続してからgvimを起動すると、GUIがローカルマシンに移動し、すべて正常に動作します。
  • ホストがWSLを実行しているWindows10マシンである場合、ssh -X user@Hostはリモートマシンのコマンドラインにアクセスできますが、gvimは代わりにGUIセッションを起動しますリモートマシン代わりに。
    • リモートのWindows10マシンでXmingをさらに閉じると、Gvimは"cannot open display"と文句を言います。これは、リモートマシンローカル(そのマシンに接続しているリモートデスクトップ)でgvimを起動しようとしたときと同じエラーメッセージです。
    • リモートのWindows10マシンでは、次のコマンドを使用してサーバーをホストします:Sudo service ssh start

質問:X11経由でGUIプログラムを接続できるように、Windows10マシンの適切な設定をアドバイスしてください。どうも!


詳細なデバッグ情報

ssh -v -X user@remote_serverからの抜粋:

  • Linuxリモートマシンから:
Warning: No xauth data; using fake authentication data for X11 forwarding.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = C.UTF-8
Welcome to Linux Mint 18.1 Serena (GNU/Linux 4.4.0-53-generic x86_64)
:: >>Linux-remote<< ::~>>echo $DISPLAY  
localhost:12.0

さらにテストした後、Linuxリモートで新しいSSHセッションを開くと、この数は増加します。

  • WSL-Windows-10リモートマシンから:
Warning: No xauth data; using fake authentication data for X11 forwarding.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending environment.
debug1: Sending env LANG = C.UTF-8
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.4.0-17763-Microsoft x86_64)
:: >>WIn-WSL-Machine<< ::~>>echo $DISPLAY 
0:0

リモートWSL-WindowsマシンとのSSHセッションで$DISPLAYの「エコー」を繰り返すと、同じ0:0が表示され続けました。

PS:ローカルポート0:0で実行されているXmingサーバーを使用して、同じローカルマシンでX-forwaringをテストしています。このようなXmingサーバーは、その「ローカル」WindowsWSLシェル/システムおよびLinuxマシンからのGUIに喜んで対応しています。リモートLinuxマシンがポートlocalhost:12.0を使用する必要があるというバグが発生しました。

enter image description here

2
llinfeng

同じ問題が発生し、WSLで「DISPLAY =:0.0」ではなく「DISPLAY = localhost:0.0」を設定することで解決しました。参照してください https://unix.stackexchange.com/questions/57138/why-does-my-x11-forwarding-attempt-fail-with-connect-tmp-x11-unix-x0-no-such

2
yuanli