Estoy usando Open SSH (OpenSSH_6.6.1p1, OpenSSL 1.0.1i 6 de agosto de 2014) en Windows 8.1. El reenvío X11 no parece estar funcionando. La variable de entorno DISPLAY no parece estar configurada.
Por ejemplo, si uso BitVise o Putty para conectarme y ejecuto env, veo:
[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
Si en cambio uso 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
Respuestas:
¿Ha configurado
DISPLAY
la variable de entorno en el cliente? No estoy seguro de qué shell está utilizando, pero con el derivado de shell Bourne (como bash), intente:O si está utilizando cmd.exe:
fuente
set DISPLAY=anything
seguido dessh -X user@remote
retornosCreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Desarmar la variable de entorno conset DISPLAY=
me permite ssh con éxito nuevamente, pero sin trabajar el reenvío X. No tiene ningún sentido para mí que la configuración de DISPLAY haga que el software solicite mi contraseña de esta manera. github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088Cuando corres
ssh -X remotehost
y teDISPLAY=localhost:10
presentan al host remoto.ssh
escucha en ese puerto y reenvía el tráfico al sistema de llamada, utilizando su valor original deDISPLAY
para determinar la dirección del servidor.Es probable que en su sistema local tenga
DISPLAY=:0
. O si no lo has hecho, eso es lo que está siendo predeterminado. Esto indica al sistema local que use el socket de dominio UNIX para comunicarse con la pantalla. Desafortunadamente,Xming
en Windows no se configura ese socket de dominio UNIX, por lo que sussh
reenvío X11 falla con este tipo de error:La solución, al menos hasta donde
Xming
llega, es bastante simple. Modifique laDISPLAY
variable para hacer referencia a un socket TCP de escucha en lugar de un socket de dominio UNIX.Puede que tenga que adaptar su
Xming
configuración para escuchar en el puerto TCP local 6000. Aquí es cómo empiezoXming
:Y aquí hay evidencia para confirmar que
Xming
está escuchando en el puerto tcp / 6000:fuente
localhost:0
.DISPLAY=:0
funciona bien en WSL + XMing paraxeyes
, pero no parassh -X
? ¿ssh -X
Interpreta $ DISPLAY de manera diferente a otros clientes X11 locales? ¿Otros clientes X11 retroceden automáticamentelocalhost:0
perossh -X
no lo hacen?man X
él dice que el nombre de host vacío en DISPLAY =: 0 significa "Se elegirá el transporte local más eficiente". Entonces, ¿se puedessh -X
usar un algoritmo diferente para hacer eso en comparación con decirxeyes
?DISPLAY=:0
y lossh -X
reenvía felizmente.Con ssh en Windows10 y Xming, parece que obtengo resultados "buenos" (?) Con:
y creando un objeto C: \ dev \ tty por ejemplo con
y usando
ssh -Y
(nossh -X
).fuente