Ich habe Probleme beim Einrichten der X11-Weiterleitung auf vagrant VM.
Ich führe Xming für X-Server und PuTTY als meinen SSH-Client.
Das bekomme ich, wenn ich vagrant ssh-config
:
My PuTTY hat die X11-Weiterleitung aktiviert und den X-Anzeigeort auf 0.0
gesetzt.
Wenn ich echo $DISPLAY
mache, bekomme ich keine Antwort.
Ich bin unsicher, was ich falsch konfiguriert habe. Ich folgte dem folgenden Rat beim Einrichten meines PuTTY-Clients. Wenn es eine einfachere Möglichkeit gibt, VM mit X11-Weiterleitung einzurichten, lassen Sie es mich wissen.
Als Referenz sind das die Inhalte meiner Vagrantfile
.
Installieren Sie Cygwin mit den folgenden Paketen, um das auf dieser Website angegebene Problem zu beheben:
> Laden Sie dann das Fenster mit startxwin
vom Cygwin-Terminal.
Ein Hinweis, den ich später entdeckte, ist, dass es besser ist, mit dem folgenden Befehl in vagrant zu gehen:
vagrant -Y ssh
Als:
vagrant -X ssh
Letzteres wird im nicht vertrauenswürdigen Modus wie in dieser Antwort durchgeführt und nach einer Weile die Zeit abläuft.
Ich hatte ein sehr ähnliches Problem, aber in meinem Fall war es ein Problem mit der Vagrant VM. Hier sind einige Dinge zu überprüfen:
X11Forwarding
muss auf yes
in /etc/ssh/sshd_config
gesetzt werden
vagrant ssh -- -vvv -X
in Linux, Putty scheint auch ein -v
Kommandozeilen-Flag zu haben) und suche nach interessanten Nachrichten. Bei meiner Vagrant VM hat der folgende die folgende Meldung angezeigt:
%Vor% Nach der Installation eines Pakets mit xauth
( xorg-xauth
, xorg-x11-xauth
oder ähnlich) funktionierte vagrant ssh -- -X
einwandfrei.
Verwenden Sie "startxwin", um den Cygwin X Server auszuführen. Verwenden Sie putty oder den cygwin ssh-Client, um ssh auf Ihrer virtuellen Gastmaschine zu betreiben.
Wenn Sie cygwin ssh verwenden, exportieren Sie DISPLAY =: 0, bevor Sie ssh ausführen (zB "vagrant ssh - -vvv -X").
Für putty: Führe "startxwin - -listen tcp" aus, aktiviere die ssh-X11 Weiterleitung in der putty connection config, setze "X display location" auf "localhost: 0" und setze den korrekten Pfad der .Xauthority Datei ( Durchsuchen, ist es wahrscheinlich in Ihrem Home-Verzeichnis; startxwin Ausgabe wird Ihnen sagen, wo).
Vielleicht benutze msys2 ssh nicht (die vagrant Standardinstallationsumgebung ist msys2, aber vagrant funktioniert auch unter cygwin) mit dem Cygwin X Server. (Details finden Sie unter Warum?)
Details:
Wenn Sie "connect /tmp/.X11-unix/X0: Keine solche Datei oder Verzeichnis" (unter ssh verbose mode) oder Putty-Fehler "PuTTY X11 proxy: keine Verbindung zu weitergeleitetem X-Server: Netzwerkfehler: Verbindung abgewiesen ", versuchen Sie es mit tcp-Sockets und nicht mit den Standard-Unix-Domain-Sockets.
Wenn Sie Ihren Cygwin X Server starten, gehen Sie auf "X -listen tcp -multiwindow" (Multifenster ist optional - es öffnet sich für jede App ein neues Fenster).
Wenn Sie in der Befehlszeile openssh "ssh" verwenden: Bevor Sie "vagrant ssh - -vvv -X" verwenden, gehen Sie "export DISPLAY = localhost: 0" (nicht ": 0", sondern "localhost: 0") es verwendet tcp). Ich benutze git bash, die msys2 verwendet, die nicht korrekt mit meinem cygwin X-Server über emulierte Unix-Domain-Sockets zu kommunizieren scheint. Aber wenn ich "vagrant ssh - -X" unter meiner cygwin-Eingabeaufforderung (mit DISPLAY =: 0 für Unix-Domain-Sockets) verwende, funktioniert es.
Große Informationsquelle: Ссылка
Sie können auch "config.ssh.forward_x11 = true" zu Ihrer Vagrant-Datei hinzufügen. Ich denke, das setzt X11Forwarding in / etc / ssh / sshd_config, wenn die virtuelle Gastmaschine eingerichtet wird oder "vagrant reload" ausgeführt wird. - Ссылка
Update: Es wird nicht empfohlen X ohne xauth security auszuführen (wie oben gezeigt). Es ist nicht sicher. Zum Beispiel können andere Computer im selben LAN über tcp eine Verbindung zu Ihrem x-Server herstellen und Ihre Tasten drücken, indem Sie xkeys verwenden. Verwenden Sie "startxwin" anstelle von X direkt, so dass es die Option "-auth" von XWin verwendet. Das macht es schwierig für mich, meine msys2 ssh dazu zu bringen, X auf meinen cygwin X Server umzuleiten. Das ssh-Protokoll während der Verbindung besagt, dass es den xauth-Befehl nicht finden kann - weil es in meiner msys2-Umgebung nicht vorhanden ist. Cygwin ssh X-Umleitung funktioniert immer noch gut. Putty funktioniert einwandfrei, solange Sie den Dateipfad .Xauthority in der Putty-Sitzungskonfiguration (wahrscheinlich in Ihrem Home-Verzeichnis) setzen.
Ich entdeckte, dass das tcp / unix-domain Socket Problem / Lösung tatsächlich in der Cygwin-FAQ ist (diese FAQ ist ziemlich hilfreich und hat viele Informationen):
6.7. Von PuTTY weitergeleitete X-Sitzungen können keine Verbindung herstellen. Nicht-cygwin lokale X-Clients können keine Verbindung herstellen.
Der X-Server verwendet jetzt standardmäßig -nolisten tcp, wodurch die Sicherheit des X-Servers erhöht wird, indem kein TCP / IP-Socket, sondern nur ein lokaler Socket (UNIX-Domäne) geöffnet wird. Nicht-Cygwin-Anwendungen können keine Verbindung zu diesem Socket herstellen.