Ich verwende Open SSH (OpenSSH_6.6.1p1, OpenSSL 1.0.1i, 6. August 2014) in Windows 8.1. Die X11-Weiterleitung scheint nicht zu funktionieren. Die Umgebungsvariable DISPLAY scheint nicht gesetzt zu sein.
Wenn ich zum Beispiel BitVise oder Putty verwende, um eine Verbindung herzustellen und env auszuführen, wird Folgendes angezeigt:
[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
Wenn ich stattdessen OpenSSH verwende (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
Antworten:
Haben Sie
DISPLAY
auf dem Client eine Umgebungsvariable festgelegt? Ich bin nicht sicher, welche Shell Sie verwenden, aber mit Bourne-Shell-Derivat (wie Bash) versuchen Sie bitte:Oder wenn Sie cmd.exe verwenden:
quelle
set DISPLAY=anything
gefolgtssh -X user@remote
kehrtCreateProcessW failed error:2 ssh_askpass: posix_spawn: No such file or directory Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
die Umgebungsvariable Entschärfen mitset DISPLAY=
mir erfolgreich wieder ssh erlaubt, aber ohne X - Forwarding zu arbeiten. Es macht für mich keinen Sinn, dass die Einstellung DISPLAY dazu führen sollte, dass die Software auf diese Weise nach meinem Passwort fragt. github.com/PowerShell/Win32-OpenSSH/issues/1088 github.com/PowerShell/Win32-OpenSSH/issues/1088Wenn Sie ausgeführt werden
ssh -X remotehost
undDISPLAY=localhost:10
dem Remote-Host angezeigt werden.ssh
Überwacht diesen Port und leitet den Datenverkehr an das aufrufende System weiter. Dabei wird der ursprüngliche Wert von verwendetDISPLAY
, um die Serveradresse zu ermitteln.Es ist wahrscheinlich, dass Sie auf Ihrem lokalen System haben
DISPLAY=:0
. Oder wenn Sie nicht haben, ist es das, was es standardmäßig ist. Dadurch wird das lokale System angewiesen, den UNIX-Domänen-Socket für die Kommunikation mit der Anzeige zu verwenden. LeiderXming
richtet Windows diesen UNIX-Domain-Socket nicht ein, sodass Ihressh
X11-Weiterleitung mit dieser Art von Fehler fehlschlägt:Das Update ist - zumindest soweit es
Xming
geht - ziemlich einfach. Ändern Sie dieDISPLAY
Variable so, dass sie auf einen empfangsbereiten TCP-Socket und nicht auf einen UNIX-Domänen-Socket verweist.Möglicherweise müssen Sie Ihre
Xming
Konfiguration anpassen , um den lokalen TCP-Port 6000 abzuhören. So fange ich anXming
:Und hier sind Beweise, die bestätigen, dass
Xming
Port tcp / 6000 abgehört wird:quelle
localhost:0
.DISPLAY=:0
WSL + XMing für gut funktioniertxeyes
, aber nicht fürssh -X
? Istssh -X
$ DISPLAY unterschiedlich von anderen lokalen X11 - Clients zu interpretieren? Greifen andere X11-Clients automatisch auf zurücklocalhost:0
,ssh -X
aber nicht?man X
steht, dass der leere Hostname in DISPLAY =: 0 "Der effizienteste lokale Transport wird ausgewählt" bedeutet. Kann man alsossh -X
einen anderen Algorithmus verwenden, um das zu tun, als etwaxeyes
?DISPLAY=:0
undssh -X
gerne weitergebe.Mit ssh in Windows 10 und Xming erhalte ich scheinbar "gute" (?) Ergebnisse mit:
und ein Objekt erstellen C: \ dev \ tty zB mit
und mit
ssh -Y
(nichtssh -X
).quelle