원격 서버에 로그인하여 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에게 감사드립니다. 귀하의 의견을 바탕으로 문제를 파악할 수 있었습니다.
이 솔루션에는 두 단계가 필요합니다.
- DISPLAY 변수가 올바르게 설정되어야 합니다.
- 원격 서버에 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과 비교). Case2의 경우 결과는 비어 있습니다. 반면, 해당 명령줄의 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가 설치되지 않아 문제가 발생했습니다. apt-get install xorg
Firefox가 실행되기 시작한 후.