ssh -X“Xt 오류 : 디스플레이를 열 수 없습니다 : : 0.0”


9

xtermssh 를 사용 하여 원격 서버 (Ubuntu Server 10.04) 에서 열려고 합니다.

ssh -X name@machine xterm

그러나 반환 된 오류는 다음과 같습니다

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

나는 내가 찾은 모든 것을 googled하고 시도했다. 여전히이 오류가 발생합니다. DISPLAY 변수는 자동으로 설정되어야합니까?

의 일부 sshd_config:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

어떤 충고?


ssh-ing 하기 전에xterm 현재 터미널에서 실행할 수 있습니까 ?
enzotib

@belacqua : 필요하지 않습니다. 나는 보통 원격 헤드리스 서버에 연결하고 로컬 X 서버에서 원격 X 응용 프로그램을 쉽게 실행할 수 있습니다.
enzotib

@enzotib-감사합니다; 나는 몰랐다.
belacqua

@enzotib 죄송합니다. 귀하의 의견이 없습니다. 예, 로컬 컴퓨터에서 xterm을 열 수 있습니다
Fabian

답변:


8

ssh가 연결을 설정할 수 있으면 DISPLAY적절한 값으로 설정 됩니다. 당신이 한 이후 X11DisplayOffset10 (기본값)로 설정하면의 설정 10¹보다, 무언가에 의해 적어도 ssh를하여 일반 X11 포워딩와 방해 절감하는 값이 표시되면, SSH는 10에서 시작하는 첫 번째 사용 가능한 디스플레이를 사용합니다 재정의 DISPLAY. 값 :0(또는 :0.0점 뒤의 부분은 관련이 없음)은 시스템에서 시작된 첫 번째 디스플레이를 나타내며, 일반적으로 시스템 콘솔의 활성 세션 (또는 그래픽 로그인 프롬프트)입니다.

관찰 한 동작에 대한 가장 가능성있는 설명은 쉘 구성 파일 중 하나가 설정되었다는 것입니다 DISPLAY. 가장 확실한 원인은 ~/.bashrc(bash의 단점으로 인해 bash의 부모가 rshd또는 sshd대화 형이 아니더라도 bash의 부모가 실행될 때마다 실행 됩니다). 환경 변수를 정의하는 다른 파일은 /etc/environment입니다. 이 경우 해결책은 분명합니다. 설정하지 마십시오 DISPLAY. ( DISPLAY수동으로 설정해야하는 경우는 거의 없습니다.)

다른 이국적인 설명이 있습니다. 이것은 로그인 쉘을 screen(이론적으로는 귀여운 아이디어이지만 실용적이지는 않지만) 변경하고 DISPLAY화면 내부에 강제로 설정하는 쉘 초기화 파일을 가지고있는 경우에 발생할 수 있습니다 ( 좋은 아이디어는 아닙니다). 클라이언트가 보낸 환경 변수 ( AcceptEnvin 지시문 sshd_config) 를 허용하도록 서버를 구성하고 클라이언트가 보내는 중이고 DISPLAYX 연결을 설정할 수없는 경우에도 발생할 수 있습니다. 또는의 command지시문을 통해 서버에서 환경 변수를 설정하면 발생할 수 있습니다 ~/.ssh/authorized_keys. 아니면 xterm스크립트 일 수도 있습니다.

¹ 또는 서버 구성에 값이 있더라도 기본값에서 거의 변경되지 않았습니다.X11DisplayOffset


1
언급 한 다양한 문제를 해결하기 위해 나열된 방법을 사용하면 도움이 될 것입니다.
George Stocker

@GeorgeStocker 이러한 모든 문제는“구성 파일에 일부 설정이 있습니다”형식이므로 모든 설정을 제거하거나 변경하는 것입니다. 식별 할 수 있지만 수정할 수없는 것이 있습니까?
Gilles 'SO- 악마 그만해'

내가보고 DISPLAY=localhost:11.0내에서 env, 그러나 그것의 관련성과 내가로 변경할지 여부는 DISPLAY 10.0불분명하다.
George Stocker

@GeorgeStocker 그렇다면 귀하의 증상이이 질문과 일치하지 않습니다. 10 이이 답변이 적용되는 컷오프 값임을 명확히하기 위해 답변을 업데이트했습니다. 여기서 11은 예상 값입니다 (아마도 X 전달을 사용하는 두 번째 활성 SSH 연결).
Gilles 'SO- 악마 그만해'

실행 중이고 DISPLAY=:0 xterm여전히 xterm: Xt error: Can't open display: :0오류가 발생하므로 환경 변수에 문제가 없습니다.
Dan Dascalescu 2

3

당신의 명령은 효과가있을 것입니다. 대신 이것을 시도하십시오 :

ssh -Y user@machine xterm

편집 (1) :

이 시도:

ssh -X user@machine env

그것은 모든 환경을 보여 주어야합니다. 거기에는 다양한 SSH 항목과 DISPLAY가 있어야합니다. DISPLAY는 10.0이어야합니다.

당신은 또한 이것을 시도 할 수 있습니다 :

ssh -X user@machine DISPLAY=10.0 xterm

나는 그것을 시도했지만 -Y작동하지 않았다. 나는 아직도 얻는다Can't open display: :0.0
Fabian

로컬 머신은 무엇입니까? : 0.0은 원격 서버가 아닌 로컬 X 서버 의 기본값이므로 ...
ed와 관련이 있습니다.

Ubuntu 10.04, Linux Mint 11 또는 Mac OS X 10.7을 사용합니다. 사용법은 위치 (직장 / 집)에 따라 다르지만 오류는 동일합니다
Fabian

답변을 편집하겠습니다 ... (1)
ed.

내 DISPLAY 변수입니다localhost:10.0
알렉시스 WILKE

2

X의 액세스 제어가 방해 될 수 있습니다.

액세스 제어를 완전히 비활성화하려면 xhost +패키지에서 실행하십시오 x11-xserver-utils.



1

xauth가 설치되지 않은 것을 발견했습니다.


0

또한 클라이언트쪽에 X11이 설치되어 있는지 확인하십시오. Mac을 OS X Mountain Lion으로 업그레이드 할 때이 문제가 발생했습니다. Mountain Lion은 X11을 제거하므로 오픈 소스 X Quartz 프로젝트를 통해 X11을 다시 설치해야합니다. http://xquartz.macosforge.org/landing/


-1

먼저 연결을 열고 일단 개방 xterm을 설정해야합니다.


답변 주셔서 감사합니다. "연결 열기"는 무슨 뜻입니까? ssh -X name@machine 연결을 사용 하고 연결 xterm하면 같은 오류가 발생합니다. 그 말인가요? ;)
Fabian

아니요, 먼저 연결하지 않고도 작동해야합니다.
enzotib

@Fabian-이것이 그가 의미 한 바라고 믿습니다.
belacqua

VNC 연결이 필요하다고 생각합니다.
nanofarad

@enzotib, 음 ... 실제로 ssh는 먼저 연결되고 xterm은 해당 ssh환경 에서 시작됩니다 . 따라서 어느 쪽이든 ssh -X remote먼저 사용하는 경우에만 거의 동일 합니다. 확인 후 원격 컴퓨터에 올바르게 설정되어 echo $DISPLAY있는지 확인하십시오 . $DISPLAYssh -X
Alexis Wilke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.