-X 플래그 (X11 전달)가 Windows에서 작동하지 않는 것 같습니다


16

Windows 8.1에서 Open SSH (OpenSSH_6.6.1p1, OpenSSL 1.0.1i 6 Aug 2014)를 사용하고 있습니다. 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
명백한 것일 수도 있지만 포스트에서 확실하게 알 수는 없습니다. 실제로 bitvise.com/ssh-x11-forwarding 과 같이 Windows에 X 서버가 설치되어 있습니까?

1
예, Xming X 서버 ( straightrunning.com/xmingnotes )
abendigo

PuTTY와 동일한 방법으로 테스트 해 보셨습니까? 그렇지 않다면, 그것을 시도하고 그것이 작동하는지 확인하는 것이 좋습니다.
polemon

1
예, 퍼티에서 작동합니다.
abendigo

지금 Windows VM을 확인하고 있습니다. 이 작업을 수행하기 위해 PuTTY가 설정 한 변수 종류를 확인하는 것만 큼 간단 할 수 있습니다. 몇 시간 후에 답변을 추가하겠습니다.
polemon

답변:


16

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

고마워요, 이것이 바로 내가 놓친 것입니다! 허용되는대로 현상금을 수여합니다.
abendigo

나는 roaima의 대답을 상향 투표했습니다 (아래)는 이유 뿐만 아니라 대답 만하기 때문에 설명 합니다.
Azhrei 2016 년

2
roaima의 답변은 문제가 발생한 이유를 설명하지만 문제를 해결하는 데 도움이되지 않았습니다. 나는 내 질문에 내가 창문을 돌리고 있다고 설명했다. yaegashi의 대답은 내 문제를 해결 한 창에 입력하라는 명령을 내 렸습니다. 그래서이 답변을 선택했습니다.
abendigo

이 답변에 투표하기 위해 계정을 등록했습니다. 나는 여기에 도달하기 전에 인터넷을 오랫동안 검색했다.
리오 윙

3
이 솔루션은 저에게 효과적이지 않습니다. set DISPLAY=anything그 뒤에 ssh -X user@remote리턴 CreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).값으로 환경 변수를 설정 해제하면 set DISPLAY=X 전달 작업없이 다시 성공적으로 ssh 할 수 있습니다. DISPLAY를 설정하면 소프트웨어가 내 비밀번호를 이런 식으로 요구해야한다는 것은 말이되지 않습니다. github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088
Pavel Komarov

14

당신이 실행하면 ssh -X remotehost당신은 얻을 DISPLAY=localhost:10원격 호스트에 발표했다. ssh해당 포트에서 수신 대기하고 원래 값 DISPLAY을 사용하여 서버 주소를 판별 하여 호출 시스템으로 트래픽을 다시 전달합니다 .

로컬 시스템에있을 가능성이 DISPLAY=:0있습니다. 또는 그렇지 않은 경우 이것이 기본값으로 설정되어 있습니다. 이는 로컬 시스템이 UNIX 도메인 소켓을 사용하여 디스플레이와 통신하도록 지시합니다. 불행히도 XmingWindows에서는 해당 UNIX 도메인 소켓을 설정하지 않으므로 sshX11 전달이 다음과 같은 오류로 실패합니다.

$ 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

고마워, 나는이 정확한 문제가 있었다! 나는 : 0이 연결이 소켓을 통해 이루어 졌다는 것을 몰랐다. 나는 항상 localhost : 0의 축약 형이라고 생각했습니다.
안드레아스 래스터

Windows 및 Xming 용 Ubuntu 용 Bash와 동일한 문제가 발생하여 해결되었습니다! 방금 DISPLAY을 (를)로 설정해야했습니다 localhost:0.
벤 리차드

왜 어떤 생각 DISPLAY=:0에 대한 WSL + XMing에서 잘 작동 xeyes을 위해,하지만 ssh -X? ssh -X$ DISPLAY를 다른 로컬 X11 클라이언트와 다르게 해석 합니까 ? 다른 X11 클라이언트는 자동으로 돌아가 localhost:0지만 ssh -X그렇지 않습니까?
Markus Kuhn

man X0 수단 "가장 효율적인 지역 교통이 선택됩니다."이 화면에 빈 호스트 이름이 = 말한다 그렇다면 ssh -X다른 알고리즘을 사용하여 말할 수 xeyes있습니까?
Markus Kuhn

@MarkusKuhn 아마도 WSL + Xming은 Cygwin + Xming과 다릅니다. 나는 지금 그것을 행복하게 사용 DISPLAY=:0하고 ssh -X전달하는 것을 본다 .
roaima

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.