Estou usando o Open SSH (OpenSSH_6.6.1p1, OpenSSL 1.0.1i 6 de agosto de 2014) no Windows 8.1. O encaminhamento X11 não parece estar funcionando. A variável de ambiente DISPLAY não parece estar definida.
Por exemplo, se eu usar o BitVise ou o Putty para conectar e executar o env, vejo:
[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
Se eu usar o 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
Respostas:
Você definiu
DISPLAY
variável de ambiente no cliente? Não tenho certeza de qual shell você está usando, mas com o derivado Bourne (como o bash), tente:Ou se você estiver usando o cmd.exe:
fonte
set DISPLAY=anything
seguido porssh -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).
Desativar a variável de ambienteset DISPLAY=
permite que eu faça o ssh com êxito novamente, mas sem trabalhar no encaminhamento do X. Não faz sentido para mim que a configuração de DISPLAY deva fazer com que o software solicite minha senha dessa maneira. github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088Quando você executa
ssh -X remotehost
e éDISPLAY=localhost:10
apresentado ao host remoto.ssh
escuta nessa porta e encaminha o tráfego de volta ao sistema de chamada, usando seu valor original deDISPLAY
para determinar o endereço do servidor.É provável que você tenha no seu sistema local
DISPLAY=:0
. Ou, se você não tiver, é o que está sendo padronizado. Isso instrui o sistema local a usar o soquete de domínio UNIX para se comunicar com a tela. InfelizmenteXming
no Windows não configura esse soquete de domínio UNIX, portanto, ossh
encaminhamento do X11 falha com esse tipo de erro:A correção - pelo menos na medida do possível
Xming
- é bastante simples. Modifique aDISPLAY
variável para referenciar um soquete TCP de escuta em vez de um soquete de domínio UNIX.Talvez você precise adaptar sua
Xming
configuração para escutar na porta TCP local 6000. Aqui está como eu começoXming
:E aqui está uma evidência para confirmar que
Xming
está escutando na porta TCP / 6000:fonte
localhost:0
.DISPLAY=:0
funciona bem no WSL + XMing paraxeyes
, mas não parassh -X
? Será quessh -X
interpretar $ DISPLAY de forma diferente de outros clientes locais X11? Outros clientes X11 retornam automaticamente para,localhost:0
masssh -X
não são?man X
que diz que o nome do host vazia em DISPLAY =: 0 significa "O transporte local mais eficiente será o escolhido." Então pode serssh -X
usa um algoritmo diferente para fazer isso em comparação com dizerxeyes
?DISPLAY=:0
e ossh -X
encaminha com alegria.Com o ssh no Windows 10 e no Xming, pareço obter resultados "bons" (?) Com:
e criando um objeto C: \ dev \ tty, por exemplo, com
e usando
ssh -Y
(nãossh -X
).fonte