Categories: 활용하기

리눅스에서 X11 포워딩 허용 설정하기

X11 포워딩 허용 설정


X11(X Window System)을 포워딩하여 터미널상에서 입력받은 X응용프로그램의 디스플레이 출력을
윈도우 운영체제에서 GUI(그래픽유저인터페이스)로 볼 수 있게 됩니다.
X11포워딩을 위해서는 /etc/ssh/sshd_config 파일에 다음 내용을 추가(또는 수정)해주셔야 합니다.

X11Forwarding yes

위와 같은 설정시에는 X11 포워딩을 허용하게 됩니다.
 
sshd 데몬을 재시작해주시고 xterm, firefox 등과 같은 GUI프로그램을 터미널상에 입력하여
포워딩이 동작하는지 테스트할 수 있습니다.
 
그러나 정상적으로 동작하지 않는다면, 로그인시 아래와 같은 문제가 출력될 것입니다.

WARNING! The remote SSH server rejected X11 forwarding request.

이는 원격 SSH서버가 X11 포워딩 요청을 거절했다는 것인데, 주된 이유는 아래와 같습니다.
– DISPLAY 환경변수에 아무런 값이 없는 경우
– 일부 X11 패키지가 설치되지 않았을 경우
 

X11 연결문제 해결


이를 해결하기 위해서는 아래 항목을 확인해 볼 필요가 있습니다
먼저, 아래 x11 관련 패키지를 추가로 설치해야 합니다.

$ sudo yum install xorg-x11-xauth

$ sudo yum install xorg-x11-fonts-* (이 패키지는 반드시 설치하지 않아도 됩니다.)

$ sudo yum install xorg-x11-utils (이 패키지는 반드시 설치하지 않아도 됩니다.)

위와 같이 간혹 X11의 필수 패키지가 설치되지 않아 발생하기도 합니다.
(다만 각 서버의 환경이 다르기 때문에 위 방법으로는 100% 해결되지 않을 수 있습니다.)
이렇게하면 로컬호스트의 디스플레이를 참조하여 X11 포워딩을 진행하게 되고, 로컬 호스트에 설치된 터미널 프로그램이 GUI를 표시해주게 됩니다.
연관 링크 : https://www.netsarang.co.kr/knowledgebase/xmanager/10662/X11_forwarding_failed?status=1&page=1&s_type=&s_text=

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

View Comments

  • 안녕하세요?
    저는 Xmanager라는 PC X 서버를 개발해서 판매하고 있는 (주)넷사랑컴퓨터의 기술지원 담당자입니다.
    우연히 방문하여 글을 읽다가 남길 말씀이 있어 글을 올립니다.
    X11 응용프로그램을 사용할 때 흔히 하시는 실수 중에 하나가 profile(/etc/profile 포함) 등의 시작 스크립트에 DISPLAY를 적어 놓으시는 것입니다. 절대 하지 말아야 할 설정 중 하나입니다.
    DISPLAY는 로컬이든 원격이든 X 서버가 구동되는 곳으로 정해져야 하는데, 그때그때 달라질 수 있습니다. 이를 사용자의 시작 스크립트 등에서 강제로 지정하면 Can't open display 오류가 발생하여 X 응용프로그램이 구동되지 않습니다.
    Xmanager와 X11의 사용에 대해서 궁금한 사항이 있으시면 저희 홈페이지를 방문해 보세요.

    • 안녕하세요. 먼저 자세하고 친절하게 설명을 남겨주셔서 정말 감사드립니다! 잘못된 부분에 대해 정확히 집어주셔서 말씀해주신 문제를 확인하고 내용을 수정하였습니다.
      아무래도 아직까지도 리눅스에 능통하지 않아서 실수를 했나 봅니다...ㅠㅠ
      바쁘신 와중에 댓글 남겨주셔서 다시 한 번 감사드립니다.

Recent Posts

[안드로이드] INSTALL_FAILED_INSUFFICIENT_STORAGE 해결

INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…

5개월 ago

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

7개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

7개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

7개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

7개월 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

1년 ago