J'utilise Putty sur une machine Windows pour ssh dans un autre serveur. Une fois sur place, j'essaie d'utiliser le transfert X11 pour faire apparaître des fenêtres sur mon ordinateur. Le système distant n'est pas le problème car il s'agit d'un grand système qui est utilisé avec succès par de nombreux autres utilisateurs de la même manière.
Je me connecte au système via Putty sans problème, puis je lance startxwin
dans cygwin. Cependant, lors de l'exécution xterm
dans Putty, je reçois l'erreur xterm Xt error: Can't open display: localhost:##.0
où les signes dièse sont deux entiers dont la valeur change à chaque connexion.
- J'ai le transfert X11 activé dans les paramètres Putty
- J'ai essayé de régler "l'emplacement d'affichage X" sur
localhost:0
- Je me suis assuré de télécharger le package X11 pour cygwin
- J'ai essayé d'utiliser juste
startx
au lieu destartxwin
- J'ai essayé
setenv DISPLAY localhost:0
etsetenv DISPLAY my.ip.address
Malheureusement, le problème persiste. J'ai épuisé mes ressources Google sur ce sujet et j'apprécierais donc grandement toute aide. Merci!
localhost:##.0
Quels chiffres réels voyez-vous ici? Quel type de logiciel X utilisez-vous sur l'ordinateur Windows?Réponses:
Les mises à jour récentes de Cygwin ont changé son serveur X pour ne pas écouter les connexions TCP par défaut. Au lieu de cela, Cygwin's X utilise (l'implémentation Cygwin) des sockets de domaine Unix, et PuTTY (en tant que programme Windows natif) ne sait pas comment les utiliser.
La FAQ Cygwin X et les listes de diffusion Cygwin contiennent plus de détails.
Ma solution a été de prendre le raccourci Cygwin standard qui utilise startxwin pour lancer X:
et le remplacer par une invocation directe de xinit avec mes options souhaitées (ajouter
-listen tcp
et supprimer-auth
):C'est moins sûr que les nouveaux paramètres par défaut de Cygwin; il ne doit être utilisé que sur un système mono-utilisateur, et la configuration de votre pare-feu pour bloquer les connexions à XWin peut être judicieuse.
la source
Comme alternative à ce que Josh Kelley a dit, vous pouvez également modifier le fichier startxwin et ajouter le "-listen tcp" aux arguments du serveur par défaut.
Ancien: defaultserverargs = "- multiwindow"
Nouveau: defaultserverargs = "- multiwindow -listen tcp"
Toujours avec l'authentification activée, j'ai dû pointer du mastic vers le fichier d'authentification créé par le script startxwin. Le mien était situé ici: c: \ cygwin64 \ home \ USERNAME.Xauthority
Puisque ce fichier est recréé, vous devrez redémarrer les sessions de mastic après avoir réinitialisé votre xserver.
Pour des raisons de sécurité, vous pouvez également autoriser uniquement les connexions à partir de l'hôte local, car c'est ici que le mastic le transmet.
la source
Veuillez plutôt essayer de définir "X display location" sur ': 0.0'!
Josh Kelley a mentionné la FAQ Cygwin X :
la source
C'est pour xming, mais cette FAQ est peut-être utile? L'idée derrière c'est la même chose mais en utilisant xming au lieu de cygwin sur votre machine locale. https://wiki.utdallas.edu/wiki/display/FAQ/X11+Forwarding+using+Xming+and+PuTTY
la source
Comme d'autres l'ont dit, l'astuce consiste à ajouter
-listen tcp
aux arguments du serveur. Cependant, je recommande de le faire en appelantstartxwin -- -listen tcp
pour laisserstartxwin
construire le reste de laxinit
commande.Dans un raccourci du menu Démarrer:
la source