Com o encaminhamento SSH X11 ('ssh -X'), obtenha 'Não é possível abrir a tela' ao tentar executar aplicativos X

17

Consigo fazer login para interromper usando

ssh -X Hostip

mas quando eu executo o comando xclock ele me dá esse erro

Error: Can't open display: localhost:11.0

Eu verifico meu valor de exibição usando

echo $DISPLAY

e o resultado é

localhost:11.0

E o encaminhamento do X11 está configurado como YES no arquivo sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Algum conselho sobre o que estou sentindo falta aqui?

    
por OmiPenguin 22.07.2013 / 13:24

5 respostas

17

Use -Y . A partir da página man no ssh:

-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not subjected to the X11 SECURITY extension controls.

Se você ainda estiver tendo problemas, tente definir $DISPLAY como seu IP da caixa local :

$ export DISPLAY='<ip_address>:11.0'

Pode funcionar para defini-lo como

$ export DISPLAY='127.0.0.1:11.0'

As pessoas parecem ter esse problema comumente quando usam o ssh'ing do Mac OS X . Você também pode querer definir

X11UseLocalhost no

também neste caso.

    
por 22.07.2013 / 13:44
5

Acredite no link por suas instruções de diagnóstico.

Verifique se o seu cliente ssh está solicitando o encaminhamento do X11 com a sinalização -v

ssh example.com -X -v

E procure a mensagem específica:

debug1: Requesting X11 forwarding with authentication spoofing.

Outro sinal de problema do telltail é a falta da variável de ambiente DISPLAY definida para você. Se estiver em branco / não definido, há algo errado. Pelo menos de acordo com o mesmo post creditado acima , essas variáveis são definidas automaticamente para você.

Eu estava usando um mestre de controle SSH minhas conexões ssh assim:

Host <hostname>
    ControlMaster auto
    ControlPath ~/.ssh/control/%r@%h:%p
    ControlPersist 10m

Minha conexão ssh anterior não solicitou o X11Firwarding, portanto, as opções futuras da chamada ssh não estavam sendo usadas. Então para mim,

ssh -X estava sendo ignorado por completo

Se você não estiver vendo "Solicitando o encaminhamento do X11", mas verá as sessões de reutilização do muxer;

debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 10

Em seguida, você precisa sair do seu ControlMaster atual para essa conexão e reconectar com o sinalizador -X / -Y.

Para parar seu ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(This will exit all active connections using the ControlMaster)

ssh -O exit <hostname>

Exit request sent.
    
por 09.12.2016 / 19:46
4

isso funcionou para mim:

Alterar

X11UseLocalhost yes

para

X11UseLocalhost no
    
por 18.03.2015 / 21:31
2

Ao tentar encaminhar para o XQuartz no macOS, corrigi o problema executando o comando ssh ( ssh -Y no meu caso) do terminal XQuartz (aberto clicando com o botão direito no ícone XQuartz no dock e clicando em Aplicativos > Terminal).

    
por 18.06.2016 / 00:44
1

O que consertou isso para mim é simplesmente instalar o xauth, uma vez feito, funcionou como um encanto!

    
por 27.12.2016 / 22:06

Tags