-Xフラグ(X11転送)がWindowsで機能しないようです。

-Xフラグ(X11転送)がWindowsで機能しないようです。

私はWindows 8.1(OpenSSH_6.6.1p1、OpenSSL 1.0.1i、2014年8月6日)でOpen SSHを使用しています。 X11転送が機能していないようです。 DISPLAY 環境変数が設定されていないようです。

たとえば、BitViseまたはPuttyを使用して接続してenvを実行すると、次のようになります。

[marko@vm:~]$ env
XDG_SESSION_ID=6
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=192.168.1.174 61102 22
SSH_TTY=/dev/pts/0
USER=marko
MAIL=/var/mail/marko
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/marko
LANG=en_CA.UTF-8
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
SHLVL=1
HOME=/home/marko
LANGUAGE=en_CA:en
LOGNAME=marko
SSH_CONNECTION=192.168.1.174 61102 192.168.1.64 22
XDG_RUNTIME_DIR=/run/user/1000
DISPLAY=localhost:10.0
_=/usr/bin/env

代わりにOpenSSHを使用している場合(ssh -X marko @ vm):

[marko@vm:~]$ env
XDG_SESSION_ID=8
TERM=cygwin
SHELL=/bin/bash
SSH_CLIENT=192.168.1.174 61150 22
SSH_TTY=/dev/pts/1
USER=marko
MAIL=/var/mail/marko
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PWD=/home/marko
LANG=en_CA.UTF-8
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
SHLVL=1
HOME=/home/marko
LANGUAGE=en_CA:en
LOGNAME=marko
SSH_CONNECTION=192.168.1.174 61150 192.168.1.64 22
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env

答え1

DISPLAYクライアントで環境変数を設定しましたか?どのシェルを使用しているのかわかりませんが、Bourne シェル派生 (bash など) の場合は、次のことを試してください。

export DISPLAY=127.0.0.1:0
ssh -X marko@vm

またはcmd.exeを使用している場合:

set DISPLAY=127.0.0.1:0
ssh -X marko@vm

またはpowershell.exeを使用している場合:

$env:DISPLAY = '127.0.0.1:0'
ssh -X marko@vm

答え2

を実行すると、リモートホストが表示さssh -X remotehostれます。このポートでリッスンし、元の値を使用してサーバーアドレスを決定し、トラフィックをコールシステムに転送します。DISPLAY=localhost:10sshDISPLAY

ローカルシステムにいる可能性がありますDISPLAY=:0。そうでない場合、デフォルトは .これは、ローカルシステムにUNIXドメインソケットを使用してモニターと通信するように指示します。残念ながら、XmingUNIXドメインソケットはWindowsに設定されていないため、ssh次のエラーでX11転送が失敗します。

$ export DISPLAY=:0
$ ssh -X remotehost xlogo
connect /tmp/.X11-unix/X0: No such file or directory
Error: Can't open display: localhost:10.0

解決策は - 少なくとも今ではXming- 非常に簡単です。DISPLAYUNIXドメインソケットの代わりに受信TCPソケットを参照するようにこの変数を変更します。

$ export DISPLAY=localhost:0
$ ssh -X remotehost xlogo

XmingローカルTCPポート6000でリッスンするように設定を調整する必要があるかもしれません。私が始めた方法は次のとおりですXming

Xming.exe :0 -clipboard -multiwindow

Xming以下は、ポートtcp / 6000が受信されていることを確認する証拠です。

$ netstat -na | grep ':6000 .*LISTEN'
  TCP    0.0.0.0:6000           0.0.0.0:0              LISTENING

答え3

これは私にとって効果的でした。 PowerShellで環境変数を設定する:

$env:DISPLAY="127.0.0.1:0"

それからssh -Y

答え4

Powershell で次のコマンドを実行します。

setxに「localhost:0.0」と表示されます。

後でpowershellを再起動します(非常に重要です!)

powershell と ssh -Y username@computer を使用して接続します。

注:リモートグラフィックを有効にするには、SSHに-Yを使用する必要があります。

関連情報