X11はすべてを渡しません

X11はすべてを渡しません

この質問にはさまざまなバリエーションがあることを知っていますが、この状況に対する解決策が見つかりませんでした。

設定:ローカルコンピュータ、リモートコンピュータ(同じローカルネットワークにあります)。私のローカルコンピュータ(Ubuntu 20.04)には次の行があります~/.ssh/config

Host remote
    User username
    HostName remote.local
    Port 223
    ForwardX11 yes
    ForwardX11Trusted yes

リモートコンピュータ(Ubuntu 22.04)には次の行があります/etc/ssh/sshd_config

Port 223
X11Forwarding yes
X11DisplayOffset 10

(もちろんポートは重要ではありません。)接続しましたが、ssh remote問題はありません。変数は(もちろん)(時には)DISPLAYに設定されます。走ったり見たりしても大丈夫です。完璧に動作します。localhost:11.0localhost:10.0xclockxlogo

しかし、問題は、他のほとんどすべてのGUIアプリケーションを実行するたびに機能しないことです。エラーが印刷される場合もあり、静かに失敗する場合もあります。例:

  1. 実行はeog picture.png静かに失敗しました。どんなメッセージや写真も見られませんでした。
  2. を実行するとevincePDFが表示されず、重複したエラーメッセージが表示されますgdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failedgnome-calculator同様のエラーが原因で失敗します。
  3. 実行がfirefox失敗し(プロセスが以前に存在しなかったにもかかわらずブラウザが表示されない)、次のエラーメッセージが繰り返し表示されます。X11 connection rejected because of wrong authentication.
  4. 2回目の実行のために切断して再接続した後、firefoxエラーメッセージが変更されましたError: cannot open display: localhost:11.0

この時点で私は少し迷子になりました。

また、興味深い質問を見つけるために冗談モードに接続しました。関連性がある唯一の行は次のとおりです。

debug1: Remote: /home/username/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug1: Remote: /home/username/.ssh/authorized_keys:1: key options: agent-forwarding port-forwarding pty user-rc x11-forwarding
debug2: channel_input_open_confirmation: channel 0: callback start
debug2: x11_get_proto: /usr/bin/xauth  list :0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 1

よさそうですが、そうではありませんか?

sage私のユースケースは実際には非常に簡単です。内部的に(または)リモートでダイアグラムを描き、ローカルPythonで見る必要があります。以前は別のコンピュータを使ってこれを行うことができましたが、それはずっと前です。私の解決策は、図面を保存してそれをローカルでsshfs開くことでした。これは少し愚かなことです。

答え1

問題はWaylandをリモートで実行しており、アプリケーションがデフォルトに設定されていることです。

セッションを開始したら、次のことができます。

$ export GDK_BACKEND=x11

一般(debインストール)アプリケーションが渡されます。たとえば、次のようにeog使用できますevince

Firefoxはおそらくあなたの設定の非常に重要な部分です。スナップショットの問題は長い間存在してきました。スナップバグトラッカーには次のようなバグがあります。「Ssh経由でスナップを使用すると、認証エラーのためX11接続が拒否されました」。最後のコメントにはバグが分類され、解決策があると記載されていますが、解決策はもう働かない(XAUTHORITYをエクスポートするか、.Xauthorityをスナップショットに接続して場所を確認してください。)

Firefoxの2つの選択肢:

  • X11を使用してgdmセッションを開始できます(ログアウト時、ログイン時、パスワードを入力する必要があるときにセッションタイプを提供するギアがあります)。
  • firefox.comからそのプラットフォームに合ったFirefoxバイナリをダウンロードし、snapの代わりに実行してください。もはやスナップショットではないので、と同じように機能するevince必要がありますeog。また、新しいバージョンがリリースされると、ダウンロードして更新するように求められます。

関連情報