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

22

Consigo fazer login para cortar usando

ssh -X Hostip

mas quando executo o comando xclock, me dê esse erro

Error: Can't open display: localhost:11.0

Verifico meu valor de exibição usando

echo $DISPLAY

e o resultado é

localhost:11.0

E o encaminhamento X11 é definido como YES no arquivo sshd_config

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

Algum conselho do que estou perdendo aqui?

OmiPenguin
fonte
3
Você já tentou em -Yvez de -X?
Flup
2
Além disso, certifique-se de entender as implicações do uso em -Yvez de -X. Você também pode querer olhar xhost.
um CVn 22/07/2013
1
Para RedHat / CentOS 7 (pelo menos), você precisa do pacote xorg-x11-xauth, de acordo com a minha resposta aqui: unix.stackexchange.com/questions/138936/…
Mike S

Respostas:

18

Use -Y. Na página de manual no ssh:

-Y Ativa o encaminhamento confiável do X11. Os encaminhamentos confiáveis ​​do X11 não estão sujeitos aos controles de extensão do X11 SECURITY.

Se você ainda estiver com problemas, tente configurar $DISPLAYo IP da sua 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 este problema comumente quando ssh'ing a partir do Mac OS X . Você também pode querer definir

X11UseLocalhost no

neste caso também.

Kyle Kelley
fonte
1
Usando o XQuartz, não consegui usar o sinalizador -Y. "Conexão X11 rejeitada devido a autenticação incorreta."
Erik
5
mesmo depois de tentar outras sugestões, não consigo abrir uma exibição.
Erik
2
Nenhum deles funcionou para mim também. Eu precisava instalar o suporte ao XWindow no meu servidor Centos 7 (mínimo) com: yum groupinstall "X Window System" -y
Mark Edington
@ MarkEdington, isso ocorre porque o RedHat / CentOS requer o pacote xorg-x11-xauth, de acordo com a minha resposta aqui: unix.stackexchange.com/questions/138936/…
Mike S
6

isso funcionou para mim:

mudança

X11UseLocalhost yes

para

X11UseLocalhost no
não
fonte
Obrigado, Don. isso funcionou para mim também. Eu te dei uma votação. Acredito que o problema que interferiu com o padrão foi que a máquina específica está habilitada para xhost.
LD James
6
no convidado? hospedeiro? qual arquivo de configuração? thx para completar sua resposta
Philippe Gachoud
Eu fiz funcionar, largando as configurações para /etc/ssh/sshd_config.
llinfeng 29/04
6

Crédito para /unix//a/12772/61349 por suas instruções de diagnóstico.

Verifique se o cliente ssh está solicitando o encaminhamento X11 com o sinalizador -v

ssh example.com -X -v

E procure a mensagem específica:

debug1: Requesting X11 forwarding with authentication spoofing.

Outro sinal importante do problema é a falta da DISPLAYvariável de ambiente beign definida para você. Se estiver em branco / não definido, há algo errado. Pelo menos de acordo com a mesma publicação creditada acima , essas variáveis ​​são definidas automaticamente para você.


Eu estava usando um SSH Control Master minhas conexões ssh da seguinte forma:

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

Minha conexão ssh anterior não solicitou o X11Firwarding, portanto, sshas opções de chamadas futuras não estavam sendo usadas. Então pra mim

ssh -Xestava sendo completamente ignorado

Se você não está vendo "Solicitando o encaminhamento do X11", mas vê 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 ControlMaster atual para essa conexão e reconectar com o sinalizador -X / -Y.

Para parar o ControlMaster

ssh -O check <hostname>

Master running (pid=2758)

(Isso encerrará todas as conexões ativas usando o ControlMaster)

ssh -O exit <hostname>

Exit request sent.
ThorSummoner
fonte
3

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

Harry Cutts
fonte
isso funcionou para mim
dli 12/09
3

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

Mostafa
fonte