tmuxセッションで、sshを実行するとXサーバーに接続できない


10

職場では、モニターといくつかの実行中のtmuxセッションを備えたデスクトップがあります。自宅では、私は頻繁にそのデスクトップにsshして、実行中のtmuxセッションに入ります。自宅からsshするときはX11を使いたくないので、-Xフラグは使いません。(自宅からsshを実行した後)仕事に戻り、デスクトップでtmuxセッションを使用すると、GUIを生成するようなことはできなくなります。どうしてもファイルを開くことができません。matplotlibを使用しようとすると、: cannot connect to X serverメッセージが表示されます。

自宅から既存のtmuxセッションをsshして開いた後、デスクトップにGUIを開く機能を後で再接続するにはどうすればよいですか?

自宅からsshを実行すると、tmuxセッションがGUIを生成できることを忘れてしまいます。

編集:


少し混乱しています。-Xフラグを今使用していますか?それが設定されている場合、SSHを介してのみX11を行うことができます。
Anko 14

混乱させて申し訳ありません。私はどこでも-Xフラグを使用しません。SSH経由でX11を行うつもりはありません。私は、tmuxセッションが実際に存在するデスクトップでX11を使用するつもりです。元の質問を更新します。
chrisdembia 2014

回答:


4

必要なのは、DISPLAY環境変数を:0.0に設定することだけです。問題は魚のシェルを使用していることであり、これを行うときに-xフラグを使用して設定する必要があると思います

set -x DISPLAY :0.0

3
の正しい値DISPLAYはとは異なる場合があることに注意してください:0.0。見つける簡単な方法は、新しいtmuxウィンドウを作成するecho $DISPLAYことです。
j08lue

1
@ j08lueからのコメントを拡張するだけです。私の場合、echo $DISPLAY戻っlocalhost:10.0て実行するとset DISPLAY localhost:0.0うまくいきました。
IsaacS 2016年

1
誰かがbash同等の、またはクロスシェルバージョンを知っていますか?set -xの冗長性が増すだけですbash。@IsaacS、set DISPLAY localhost:10.0代わりにする必要がありlocalhost:0.0ましたか、それともあなたのために働きましたか
アイスウォーター

4
bashでは、を使用できるはずexport DISPLAY=:0.0です。
chrisdembia 2017年

1
残りのセッション(数週間続く)の新しいウィンドウごとに行う必要があるため、このソリューションは好きではありません。そして、それは私がメインのX11システムに戻って新しいウィンドウを作成しているときでも起こります。tmuxの設定解除を停止するにはどうすればよい$DISPLAYですか?
nealmcb 2018年

4

同じ問題がありました。私は通常tmux、マルチモニターX11デスクトップ環境の一部として使用し、X11やsetをサポートしていないChromebookからsshを使用することもあります$DISPLAY。@chrisdembiaによる回答は機能しDISPLAYますが、残りのtmuxセッションでは新しいウィンドウごとに変更する必要があり、これは苦痛です。

永続的な解決策は、tmux設定のDISPLAYtmux 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、別の一般的なユースケースで、デフォルトで存在する理由を説明しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.