tmux 세션에서 ssh 이후 X 서버에 연결할 수 없습니다.

tmux 세션에서 ssh 이후 X 서버에 연결할 수 없습니다.

직장에는 모니터가 있는 데스크탑이 있고 일부 tmux 세션이 실행되고 있습니다. 집에서는 종종 이 데스크톱에 SSH로 접속하여 실행 중인 tmux 세션에 들어갑니다. 집에서 SSH로 접속할 때 이렇게 합니다아니요X11을 사용하고 싶기 때문에 해당 플래그를 사용하지 않습니다 -X. 집에서 sshing 후 직장으로 돌아와 데스크탑에서 이러한 tmux 세션을 사용하면 더 이상 GUI를 생성하는 작업을 수행할 수 없습니다. 분명히 파일을 열 수 없습니다. matplotlib을 사용하려고 하면 메시지가 나타납니다 : cannot connect to X server.

집에서 SSH로 연결하고 기존 tmux 세션을 연 후 나중에 데스크탑에서 GUI 컨텐츠를 여는 기능을 다시 연결하려면 어떻게 해야 합니까?

집에서 Sshing을 하면 tmux 세션이 GUI 콘텐츠를 생성할 수 있다는 사실을 잊어버리는 것 같습니다.

편집하다:

답변1

나는 같은 문제에 직면했습니다. 나는 일반적 tmux으로 다중 모니터 X11 데스크탑 환경의 일부로 사용 하고 때로는 X11을 지원하지 않는 크롬북에서 ssh를 사용하거나 $DISPLAY. @chrisdembia의 답변은 효과가 있지만 DISPLAY나머지 tmux 세션 동안 새 창마다 변경해야하므로 고통스럽습니다.

영구적인 해결책은 DISPLAYtmux 설정의 tmux 변수에서 이를 제거하는 것입니다. update-environment다음 명령을 사용하여 현재 값을 볼 수 있습니다.

tmux show-options -g update-environment

이를 제거하기 위해 ~/.tmux.conf다음을 제외한 모든 항목을 포함하여 다음 줄을 파일 에 추가했습니다 DISPLAY.

set-option -g update-environment "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"

이에 대해서는 아래에서 자세히 설명합니다.SSH를 통해 tmux 세션에서 쉘 DISPLAY 변수 재설정DISPLAY, 다양한 일반적인 사용 사례에 대해 기본적으로 존재하는 이유를 설명합니다 .

답변2

내가 해야 할 일은 DISPLAY 환경 변수를 0.0으로 설정하는 것뿐입니다. 내 생각에 문제는 내가 Fish 셸을 사용하고 있고 이 작업을 수행할 때 -x 플래그를 사용하여 설정해야 한다는 것입니다.

set -x DISPLAY :0.0

답변3

matplotlib에 대한 tmux의 투쟁:

export MPLBACKEND='Agg'

관련 정보