ssh -X “Erro Xt: Não é possível abrir a exibição:: 0.0”

8

Estou tentando abrir xterm no meu servidor remoto (Ubuntu Server 10.04) com ssh:

ssh -X name@machine xterm

mas o erro retornado é:

xterm Xt error: Can't open display: :0.0'

Eu pesquisei e tentei tudo que encontrei. Ainda recebendo esse erro. A variável DISPLAY deve ser configurada automaticamente, certo?

Parte de sshd_config :

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

Algum conselho?

    
por Fabian 16.09.2011 / 16:11

7 respostas

7

Se o ssh conseguir estabelecer a conexão, ele definirá DISPLAY como o valor adequado. Como você tem X11DisplayOffset definido como 10 (o valor padrão), o ssh usará a primeira exibição disponível começando em 10. Se você vir um valor menor que 10¹, então algo está interferindo no encaminhamento normal do X11 configurado pelo ssh, pelo menos substituindo DISPLAY . O valor :0 (ou :0.0 , a parte após o ponto é irrelevante) indica a primeira exibição que foi iniciada na máquina, que em casos típicos é a sessão ativa (ou o prompt de login gráfico) no console da máquina.

A explicação mais provável para o comportamento observado é que um dos arquivos de configuração do shell define DISPLAY . O culpado mais óbvio é ~/.bashrc (que devido a um capricho do bash é executado sempre que o pai do bash for rshd ou sshd , mesmo que o shell não seja interativo). Outro arquivo que define variáveis de ambiente é /etc/environment . Se for esse o caso, a solução é óbvia: não defina DISPLAY . (Existem muito poucos casos em que você precisa definir DISPLAY manualmente.)

Existem outras explicações exóticas. Isso pode acontecer se você alterou seu shell de login para screen (uma idéia fofa em teoria, mas não prática) e você tem um arquivo de inicialização do shell que forçosamente define DISPLAY dentro da tela (não é uma boa idéia). Isso também pode acontecer se você configurar o servidor para aceitar variáveis de ambiente enviadas pelo cliente ( AcceptEnv diretiva em sshd_config ), o cliente está enviando DISPLAY e a conexão X não pôde ser estabelecida. Ou pode acontecer se você definir uma variável de ambiente no servidor por meio da diretiva command em ~/.ssh/authorized_keys . Ou xterm poderia ser um script.

¹ Ou qualquer que seja o valor de X11DisplayOffset na configuração do servidor, mas quase nunca é alterado do padrão.

    
por Gilles 16.09.2011 / 23:35
3

Seu comando deve funcionar, ou pelo menos para mim. Tente isso:

ssh -Y user@machine xterm

Editar (1):

Tente isto:

ssh -X user@machine env

Isso deve mostrar todo o ambiente. Deve haver várias coisas SSH lá, e também DISPLAY. DISPLAY deve ser 10.0.

Você também pode tentar isso:

ssh -X user@machine DISPLAY=10.0 xterm
    
por ed. 16.09.2011 / 17:26
2

O controle de acesso do X provavelmente está no caminho.

Execute xhost + (do pacote x11-xserver-utils ) para desativar completamente o controle de acesso.

    
por Geert 28.01.2013 / 10:20
2

Além de X11Forwarding yes , também precisei adicionar

X11UseLocalhost no

em /etc/ssh/sshd_config

como descrito aqui .

    
por user2400538 01.01.2017 / 23:09
1

Eu descobri que o xauth não foi instalado.

    
por allen 11.06.2014 / 22:44
0

Além disso, verifique se você tem o X11 instalado no lado do cliente. Eu estava recebendo este problema quando atualizei meu Mac para o OS X Mountain Lion. O Mountain Lion remove o X11, então você precisa instalá-lo novamente através do projeto X Quartz de código aberto. link

    
por Paul Maunders 01.09.2012 / 13:08
-1

Você deve abrir primeiro a conexão e, uma vez estabelecido, abrir o xterm.

    
por animaletdesequia 16.09.2011 / 16:31

Tags