Eu entrei em um servidor remoto e estou tentando exibir um aplicativo x (por exemplo, firefox). mas uma mensagem de erro aparece. abaixo estão minhas tentativas de abrir o firefox
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$ exit
logout
Connection to 143.248.146.204 closed.
Black@Black-PC ~
$ ssh -Y kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$
Usei -X, -Y porque li em algum lugar que essas duas opções estão relacionadas às credenciais do X11 e que essas opções farão o trabalho por mim. Mesmo sem as opções -X, -Y, minha tentativa falhou.
O que significa o erro 'no display speicified'?
PS O estranho é que, se eu conectar ao servidor remoto através do meu PUTTY e repetir o comando 'firefox', ele funciona?!?! (O firefox é exibido no computador local)
PS meu computador local é o Windows 7, então eu tenho o Xming rodando em segundo plano para permitir a exibição do X11. Quanto à tentativa escrita na parte superior, os comandos foram digitados no terminal Cygwin.
DISPLAY
variável não foi definida. então eu configurei com oexport DISPLAY=:0.0' and executed
xclock` e o xclock apareceu. Mas quando eu, em seguida, conectado ao servidor remoto via ssh, e tentouxclock
novamente, ele dizError: Can't open display:
Respostas:
Certifique-se de ter a variável DISPLAY configurada em seu ambiente cygwin:
após conectar-se com o SSH, verifique se esse shell também conhece a variável DISPLAY correta com:
fonte
echo $DISPLAY
. Mas ainda assim a variável DISPLAY no servidor remoto está definido para nada ..Error: Can't open display: :0.0
export DISPLAY=localhost:0
Acabei de encontrar esse problema ao conectar-me a um servidor RHEL7 sem cabeça.
Você precisa do pacote xorg-x11-xauth instalado no seu host para que a variável DISPLAY seja configurada e esteja devidamente autorizada.
Espero ter salvado alguém algum tempo.
fonte
ssh -X
umecho $DISPLAY
retornou uma porta URL + e uma chamada dexterm &
abriu um terminal em uma janela local.Obrigado a @jensd, @unxnut por me ajudar. com base nos seus comentários, consegui descobrir o problema.
A solução precisava de duas etapas:
minhas tentativas anteriores carecem de uma ou de ambas as duas condições.
De qualquer forma, para usuários posteriores que veem isso aqui, há exemplos para mostrar o que estou tentando dizer.
caso 1
minha máquina local não terá nenhuma variável DISPLAY configurada. E então ssh para o servidor remoto com a opção -X e, em seguida, tente executar
xclock
.como você pode ver, um erro
Error: Can't open display:
é mostrado no terminal do servidor remoto.case2
desta vez, na máquina local, especificarei a variável DISPLAY. Mas, quando estou gravando, não vou ligar o interruptor -X. O resultado será uma falha:
no início, você pode ver que eu configurei corretamente a variável DISPLAY. Mas mesmo assim, após ssh'ing (sem a opção -X), o xclock não é executado.
* Um resultado diferente
setenv | grep DISPLAY
pode ser visto aqui (compare com o caso1). no caso2, o resultado é apenas em branco. por outro lado, o resultado de case1 para esta linha de comando éDISPLAY: undefined variable
.... Não tenho certeza de como essa diferença é causada, mas estou entendendo que está relacionado à questão de saber se você satisfez a condição 1. ou 2 .case3
desta vez, especificarei corretamente a variável DISPLAY na máquina local e também o ssh para o servidor remoto com a opção my -X ativada.
com essa configuração,
o xclock é mostrado com sucesso na minha máquina local.
xclock
funciona !! aqui está uma captura de tela para provar que não estou mentindo.Mais uma vez, confira o resultado
setenv | grep DISPLAY
deste caso. Agora mostraDISPLAY=localhost:11.0
. Pelo que sei, isso está relacionado ao MIT-MAGIC-COOKIE no arquivo .Xauthority, mas como não sei muito sobre isso, não vou mais adiante.Conclusão: dos três casos acima, podemos confirmar que, para que o X Windows remoto seja exibido corretamente, a variável 1. DISPLAY da máquina local e o 2.
-X
comutador ssh devem estar configurados corretamente. Obviamente, o servidor remoto deve permitir o encaminhamento do X11.fonte