-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를 사용해야 합니다.

관련 정보