사례 1

사례 1

원격 서버에 로그인했고 x 응용 프로그램(예: Firefox)을 표시하려고 합니다. 하지만 오류 메시지가 나타납니다. 아래는 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 ~]$ 

저는 -X, -Y를 사용했습니다. 왜냐하면 이 두 옵션이 X11에 관한 자격 증명과 관련되어 있고 이 스위치가 저를 대신해 작업을 수행한다는 내용을 어딘가에서 읽었기 때문입니다. -X, -Y 스위치가 없어도 시도가 실패했습니다.

'지정된 디스플레이 없음' 오류는 무엇을 의미합니까?

PS 이상한 점은 PUTTY를 통해 원격 서버에 연결하고 'firefox' 명령을 반복하면 작동한다는 것입니다.?!?!(firefox는 로컬 컴퓨터에 표시됩니다)

PS 내 로컬 컴퓨터는 Windows 7이므로 X11 표시를 허용하기 위해 백그라운드에서 Xming을 실행하고 있습니다. 상단에 적힌 시도는 Cygwin 터미널에서 명령어를 입력한 것입니다.

답변1

방금 헤드리스 RHEL7 서버에 연결하는 동안 이 문제가 발생했습니다.

DISPLAY 변수를 설정하고 적절하게 인증하려면 호스트에 xorg-x11-xauth 패키지가 설치되어 있어야 합니다.

누군가의 시간을 절약하길 바랍니다.

답변2

cygwin 환경에 DISPLAY 변수가 설정되어 있는지 확인하십시오.

export DISPLAY=:0.0

SSH에 연결한 후 다음을 사용하여 해당 쉘이 올바른 DISPLAY 변수도 알고 있는지 확인하십시오.

echo $DISPLAY

답변3

나를 도와준 @jensd, @unxnut에게 감사드립니다. 귀하의 의견을 바탕으로 문제를 파악할 수 있었습니다.

이 솔루션에는 두 단계가 필요했습니다.

  1. DISPLAY 변수가 올바르게 설정되어야 합니다.
  2. 원격 서버에 SSH로 연결할 때 -X 스위치가 켜져 있어야 합니다.

나의 이전 시도에는 이 두 가지 조건 중 하나 또는 둘 모두가 부족했습니다.

어쨌든, 나중에 이 내용을 보는 사용자를 위해 제가 말하려는 내용을 보여주기 위한 예가 있습니다.

사례 1

내 로컬 컴퓨터에는 DISPLAY 변수 세트가 없습니다. 그런 다음 -X 스위치를 사용하여 원격 서버로 SSH를 연결한 다음 실행해 봅니다 xclock.

Black@Black-PC ~
$ echo $DISPLAY

## the blank means that DISPLAY variable has not been specified##
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:23:13 2014 from 
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep $DISPLAY
DISPLAY: Undefined variable.

보시다시피 Error: Can't open display:원격 서버 터미널에 오류가 표시됩니다.

사례 2

이번에는 로컬 머신에서 DISPLAY 변수를 지정하겠습니다. 하지만 SSH를 할 때는 -X 스위치를 켜지 않습니다. 결과는 실패입니다.

Black@Black-PC ~
$ export DISPLAY=:0.0

Black@Black-PC ~
$ echo $DISPLAY
:0.0

Black@Black-PC ~
$ ssh kwagjj@$labserver -p 122
Last login: Tue Jun 24 22:33:32 2014 from 
[kwagjj@James5 ~]$ xclock
Error: Can't open display:
[kwagjj@James5 ~]$ setenv | grep DISPLAY
[kwagjj@James5 ~]$ 

처음에는 DISPLAY 변수가 올바르게 설정되었음을 알 수 있습니다. 그러나 그럼에도 불구하고 ssh'ing(-X 스위치 없이) 후에는 xclock이 실행되지 않습니다.

*여기에서 다른 결과를 setenv | grep DISPLAY볼 수 있습니다(사례 1과 비교). 사례 2에서는 결과가 비어 있습니다. 반면에 이 명령줄에 대한 case1의 결과는 DISPLAY: undefined variable.... 이 차이가 어떻게 발생하는지 잘 모르겠지만 조건 1. 또는 2 중 하나를 충족했는지 여부와 관련이 있을 것으로 예상됩니다. .

사례 3

이번에는 로컬 시스템에서 DISPLAY 변수를 올바르게 지정하고 -X 스위치를 켠 상태에서 원격 서버에 ssh를 지정하겠습니다.

Black@Black-PC ~
$ echo $DISPLAY
:0.0

Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Warning: No xauth data; using fake authentication data for X11 forwarding.
Last login: Tue Jun 24 22:37:27 2014 from 
[kwagjj@James5 ~]$ xclock &
[1] 9174
[kwagjj@James5 ~]$ setenv | grep DISPLAY
DISPLAY=localhost:11.0
[kwagjj@James5 ~]$

이 설정으로 xclock작동합니다 !! 여기 내가 거짓말을 하고 있지 않다는 것을 증명하는 스크린샷이 있습니다. 여기에 이미지 설명을 입력하세요 xclock이 내 로컬 컴퓨터에 성공적으로 표시됩니다.

setenv | grep DISPLAY이 경우 의 결과를 다시 확인해 보세요 . 이제 가 표시됩니다 DISPLAY=localhost:11.0. 내가 아는 바로는 이는 .Xauthority 파일의 MIT-MAGIC-COOKIE와 관련이 있지만 이에 대해 잘 모르기 때문에 더 이상 설명하지 않겠습니다.

결론: 위의 세 가지 경우를 통해 원격 X Windows가 제대로 표시되기 위해서는 1. 로컬 컴퓨터의 DISPLAY 변수와 2. ssh -X스위치가 모두 올바르게 설정되어야 함을 확인할 수 있습니다. 물론, 원격 서버는 X11 전달을 허용해야 합니다.

답변4

데비안 기반 시스템(proxmox)에서도 비슷한 문제가 있었고 문제는 xorg가 설치되지 않았기 때문에 발생했습니다. Firefox가 작동하기 시작한 후 apt-get install xorg.

관련 정보