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をサポートしていないChromebookで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、さまざまな一般的なユースケースに基本的に存在する理由を説明します。

おすすめ記事