대부분의 사람들은 SSH를 통해 로그인한 컴퓨터로 창을 전달할 수 있기를 원합니다. 나는 그 반대를하고 싶다.
저는 데스크톱에서 SSH를 통해 서버에 로그인하고 있습니다. 서버는 본질적으로 미디어 센터이고 그 화면은 내 TV입니다. SSH 세션에서 시작할 수 있기를 원 chromium-browser
하지만 로컬 컴퓨터가 아닌 서버에 표시되도록 합니다.
그냥 실행하면 chromium-browser &
작동하지 않고 Gtk: cannot open display
오류가 발생합니다. "디스플레이를 자체적으로 내보내려면" 서버에서 환경 변수를 설정해야 합니까?
답변1
예, X 프로그램은 DISPLAY
환경 변수를 사용하여 디스플레이를 어디로 보내야 하는지 파악합니다. SSH를 사용하는 경우 SSH 연결을 클라이언트 시스템으로 다시 전달 DISPLAY
하도록 환경이 자동으로 설정될 수 있습니다 (이 를 통해 확인할 수 있습니다 ). 로컬 컴퓨터에서 실행 중인 X 서버가 없으면 원격 프로그램은 디스플레이를 열 수 없다고 불평합니다.DISPLAY
echo $DISPLAY
다음 명령을 사용하여 로컬로 연결된 모니터에서 브라우저를 명시적으로 시작할 수 있어야 합니다.
env DISPLAY=:0 chromium-browser &
:0
"로컬 영역 연결 표시 번호 0"의 약어입니다.
답변2
원격 시스템에서 실행 중인 X 서버가 있어야 하며 표시하도록 구성된 내용을 알아야 합니다(예: DISPLAY=localhost:1).
SSH를 통해 서버에 들어가서 표시 변수를 내보냅니다.
export DISPLAY=localhost:1
그런 다음 GUI를 시작하십시오.
답변3
ssh에는 자체 X 전달 기능도 있습니다. sshd.conf의 X11Forwarding On 지시문을 사용하여 설정해야 할 수도 있습니다. 이 경우 기본 DISPLAY 환경 변수가 있으며 X11이라는 DISPLAY 프로그램이 SSH 연결을 통해 전달되고 암호화됩니다. 다음으로 NAT 뒤에 X 애플리케이션을 얻을 수 있습니다.
답변4
어쨌든 DISPLAY 변수를 올바르게 설정하는 것 외에도 ssh -X(또는 -Y) 스위치를 사용하여... 호스트가 원격 자료를 올바르게 표시하도록 허용되어 있습니까?
xhost 명령을 사용하여 원격 호스트에 모니터에 정보를 보낼 수 있는 권한이 있는지 확인하십시오.