この質問にはさまざまなバリエーションがあることを知っていますが、この状況に対する解決策が見つかりませんでした。
設定:ローカルコンピュータ、リモートコンピュータ(同じローカルネットワークにあります)。私のローカルコンピュータ(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.0
localhost:10.0
xclock
xlogo
しかし、問題は、他のほとんどすべてのGUIアプリケーションを実行するたびに機能しないことです。エラーが印刷される場合もあり、静かに失敗する場合もあります。例:
- 実行は
eog picture.png
静かに失敗しました。どんなメッセージや写真も見られませんでした。 - を実行すると
evince
PDFが表示されず、重複したエラーメッセージが表示されますgdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed
。gnome-calculator
同様のエラーが原因で失敗します。 - 実行が
firefox
失敗し(プロセスが以前に存在しなかったにもかかわらずブラウザが表示されない)、次のエラーメッセージが繰り返し表示されます。X11 connection rejected because of wrong authentication.
- 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
。また、新しいバージョンがリリースされると、ダウンロードして更新するように求められます。