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