Korzystam z Open SSH (OpenSSH_6.6.1p1, OpenSSL 1.0.1i 6 sierpnia 2014) w systemie Windows 8.1. Przekazywanie X11 nie działa. Zmienna środowiskowa DISPLAY nie wydaje się być ustawiona.
Na przykład, jeśli używam BitVise lub Putty do łączenia się i uruchamiania env, widzę:
[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
Jeśli zamiast tego użyję 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
Odpowiedzi:
Czy ustawiłeś
DISPLAY
zmienną środowiskową na kliencie? Nie jestem pewien, której powłoki używasz, ale z pochodną powłoki Bourne'a (jak bash), spróbuj:Lub jeśli używasz cmd.exe:
źródło
set DISPLAY=anything
po których następująssh -X user@remote
powrotyCreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Odznaczenie zmiennej środowiskowej za pomocąset DISPLAY=
pozwala mi ponownie ssh pomyślnie, ale bez pracy przekazywania X. Nie ma dla mnie sensu, że ustawienie WYŚWIETLACZA powinno spowodować, że oprogramowanie poprosi o moje hasło w ten sposób. github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088Po uruchomieniu
ssh -X remotehost
iDISPLAY=localhost:10
wyświetleniu się zdalnemu hostowi.ssh
nasłuchuje na tym porcie i przekazuje ruch z powrotem do systemu wywołującego, korzystając z oryginalnej wartościDISPLAY
określającej adres serwera.Prawdopodobnie masz w systemie lokalnym
DISPLAY=:0
. A jeśli nie, to jest to domyślnie. To instruuje system lokalny, aby używał gniazda domeny UNIX do komunikacji z wyświetlaczem. NiestetyXming
w systemie Windows nie skonfigurowano tego gniazda domeny UNIX, więcssh
przekazywanie X11 kończy się niepowodzeniem z tego rodzaju błędem:Poprawka - przynajmniej jeśli chodzi o
Xming
to - jest dość prosta. ZmodyfikujDISPLAY
zmienną tak, aby odwoływała się do nasłuchującego gniazda TCP zamiast do gniazda domeny UNIX.Może być konieczne dostosowanie
Xming
konfiguracji do nasłuchiwania na lokalnym porcie TCP 6000. Oto jak zacząćXming
:A oto dowody potwierdzające, że
Xming
nasłuchuje na porcie TCP / 6000:źródło
localhost:0
.DISPLAY=:0
działa dobrze na WSL + XMing dlaxeyes
, ale nie dlassh -X
? Czyssh -X
interpretuje $ DISPLAY inaczej niż inni lokalni klienci X11? Czy inni klienci X11 cofają się automatycznie,localhost:0
alessh -X
nie robią tego?man X
nim jest napisane, że pusta nazwa hosta w DISPLAY =: 0 oznacza „Wybrany zostanie najbardziej wydajny transport lokalny”. Więc może byćssh -X
użyty do tego inny algorytm w porównaniu do powiedzeniaxeyes
?DISPLAY=:0
issh -X
przekazuję to z radością.Z ssh w Windows10 i Xming wydaje mi się, że „dobre” (?) Wyniki:
i tworzenie obiektu C: \ dev \ tty np. z
i za pomocą
ssh -Y
(niessh -X
).źródło