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 starten.
Wenn Sie cygwin ssh verwenden, exportieren Sie DISPLAY =: 0, bevor Sie ssh ausführen (zB "vagrant ssh - -vvv -X").
Für putty: Führen Sie "startxwin - -listen tcp" aus, aktivieren Sie die ssh-X11-Weiterleitung in der Putty-Verbindungskonfiguration, setzen Sie "X display location" auf "localhost: 0" und legen Sie den korrekten Pfad der .Xauthority-Datei fest (Durchsuchen, es ist wahrscheinlich in Ihrem Home-Verzeichnis; startxwin Ausgabe wird Ihnen sagen, wo).
Vielleicht msys2 ssh (die vagrant Standardinstallationsumgebung ist msys2 aber vagrant funktioniert auch unter cygwin) mit dem Cygwin X Server nicht verwenden. (Siehe Details für weitere Informationen darüber, warum)
Details:
Wenn Sie erhalten „/tmp/.X11-unix/X0 verbinden: Keine solche Datei oder das Verzeichnis“ (unter ssh ausführlicher Modus) oder Kitt Fehler " PuTTY X11-Proxy: Verbindung zum weitergeleiteten X-Server kann nicht hergestellt werden: Netzwerkfehler: Verbindung verweigert ", versuchen Sie tcp-Sockets anstelle der Standard-Unix-Domain-Sockets zu verwenden.
Wenn Sie Ihren Cygwin X Server starten, gehen Sie "X -listen tcp -multiwindow" (Multifenster ist optional - es öffnet sich für jede App ein neues Fenster).
Bei Verwendung von openssh "ssh" von der Befehlszeile: Bevor Sie "vagrant ssh - -vvv -X" gehen, gehen Sie "Export DISPLAY = localhost: 0" (nicht ": 0" aber "localhost: 0" so verwendet es 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 Info Quelle: http://dustwell.com/how-x-over-ssh-really-works.html
Sie können aber auch "config.ssh.forward_x11 = true" zu Ihrem Vagrantfile hinzuzufügen. Ich denke, das setzt X11Forwarding in/etc/ssh/sshd_config, wenn die virtuelle Gastmaschine eingerichtet wird oder "vagrant reload" ausgeführt wird. - https://coderwall.com/p/ozhfva/run-graphical-programs-within-vagrantboxes
Update: Es wird nicht empfohlen, X ohne xauth-Sicherheit 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 (wahrscheinlich in Ihrem Home-Verzeichnis) in der Putty-Session-Konfiguration festlegen.
entdeckte ich die TCP/Unix-Domain-Socket Problem/Lösung tatsächlich in der Cygwin-FAQ ist (diese FAQ sehr hilfreich ist und eine Menge Informationen hat):
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.
https://x.cygwin.com/docs/faq/cygwin-x-faq.html
Dies wird durch die Verwendung von Cygwin als X-Server über diese [Beratung] (http://x.cygwin.com/docs/ug/setup.html) gelöst. – Matt
Könnten Sie es bitte als Antwort unten hinzufügen und akzeptieren? Kommentare sind nicht der beste Ort für richtige Antworten. –
@RadekSimko Fertig. Danke für das Aufzeigen! – Matt