Encaminhamento Putty-Cygwin X11 “Não é possível abrir o display” Erro

10

Estou usando o Putty em uma máquina Windows para ssh em outro servidor. Uma vez lá, estou tentando usar o encaminhamento do X11 para abrir janelas no meu computador. O sistema remoto não é o problema, pois é um sistema grande que é usado com sucesso por muitos outros usuários da mesma maneira.

Eu entro no sistema via Putty sem problemas e então executo startxwin no cygwin. No entanto, ao executar xterm em Putty, recebo o erro xterm Xt error: Can't open display: localhost:##.0 , em que os sinais de libra são dois inteiros cujo valor muda sempre que eu efetuo login.

  • Eu tenho o encaminhamento do X11 ativado nas configurações do Putty
  • Tentei definir o "local de exibição X" como localhost:0
  • Assegurei-me de fazer o download do pacote X11 para o cygwin
  • Eu tentei usar apenas startx em vez de startxwin
  • Eu tentei setenv DISPLAY localhost:0 e setenv DISPLAY my.ip.address

Infelizmente, o problema persiste. Eu já exaurei meus recursos pesquisados neste tópico e, portanto, agradeço muito qualquer ajuda. Obrigado!

    
por Tyler 07.04.2015 / 18:06

4 respostas

11

Atualizações recentes do Cygwin alteraram seu servidor X para não atender às conexões TCP por padrão. Em vez disso, o X do Cygwin usa (a implementação do Cygwin) soquetes de domínio Unix, e o PuTTY (como um programa nativo do Windows) não sabe como usá-los.

O Perguntas frequentes do Cygwin X e Cygwin envio de correio listas mais detalhes.

Minha solução foi usar o atalho Cygwin padrão que usa o startxwin para iniciar o X:

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin"

e substitua-o por uma chamada direta do xinit com minhas opções desejadas (adicione -listen tcp e remova -auth ):

C:\cygwin\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/xinit /etc/X11/xinit/startxwinrc -- /usr/bin/XWin :0 -multiwindow -listen tcp"

Isso é menos seguro que os novos padrões do Cygwin; ele deve ser usado somente em um sistema de usuário único, e configurar seu firewall para bloquear conexões com o XWin pode ser sábio.

    
por 08.07.2015 / 20:29
6

Como uma alternativa ao que Josh Kelley disse, você também pode editar o arquivo startxwin e adicionar o "-listen tcp" aos argumentos padrão do servidor.

Antigo: defaultserverargs="- multiwindow"

Novo: defaultserverargs="- multiwindow -listen tcp"

Além disso, com a autenticação ativada, tive que apontar o putty para o arquivo de autenticação criado pelo script startxwin. O meu foi localizado aqui: c: \ cygwin64 \ home \ USERNAME.Xauthority

Como esse arquivo é recriado, você terá que reiniciar as sessões de putty depois de redefinir seu xserver.

Por questões de segurança, você também pode permitir conexões apenas a partir do localhost, já que é aqui que o putty as encaminha.

    
por 17.05.2016 / 16:00
2

I tried setting the "X display location" to localhost:0

Por favor, tente definir o "X display location" para ': 0.0' em vez disso!

export DISPLAY=:0.0

Josh Kelley mencionou o Perguntas frequentes sobre o Cygwin X :

3.13. I upgraded and now X clients can't connect

A1:

Since X server 1.17, by default the server does not listen for TCP/IP connections, only accepting local connections on a unix domain socket.

For local clients, use DISPLAY=:0.0, rather than DISPLAY=localhost:0.0, DISPLAY=127.0.0.1:0.0, DISPLAY=::1:0.0, etc.

    
por 21.03.2017 / 17:38
0

É para o xming, mas talvez esse faq seja de alguma ajuda? A idéia por trás disso é a mesma, mas usando o xming em vez do cygwin na sua máquina local. link

    
por 07.04.2015 / 22:04