私は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:10
ssh
DISPLAY
ローカルシステムにいる可能性がありますDISPLAY=:0
。そうでない場合、デフォルトは .これは、ローカルシステムにUNIXドメインソケットを使用してモニターと通信するように指示します。残念ながら、Xming
UNIXドメインソケットは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
- 非常に簡単です。DISPLAY
UNIXドメインソケットの代わりに受信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を使用する必要があります。