私が最初にやりたいことは:
サーバーにログインしたいですssh
。次に、変更ユーザーを変更し、sudo su user
私の画面でいくつかのアプリを実行します。
いくつかの同僚がこのようなことをしています。
su user
export DISPLAY=<IP>:0
効果がある
経由でサーバーに接続しますssh -X user@server
。次にX11アプリケーションを起動します。これはうまくいきます(警告にもかかわらず)。
警告する:
libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate
qt.qpa.xcb: QXcbConnection: XCB error: 1 (BadRequest), sequence: 414, resource id: 1897, major code: 155 (Unknown), minor code: 1
sudo su
(または)を実行しsudo su user
てプログラムを起動または実行すると、sudo myprogram
エラーが発生します。
間違い:
X11 connection rejected because of wrong authentication.
qt.qpa.xcb: could not connect to display localhost:11.0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.
Aborted
この問題に関するいくつかの記事を見つけました。
SSH接続。認証エラーのため X11 接続が拒否されました。
したがって、/etc/pam.d/su
ファイルと/etc/pam/sudo
ファイルを次に展開します。
session optional pam_xauth.so
後で以下を追加して変更しました/etc/ssh/sshd_config
。
X11Forwarding yes
sshdを再起動するだけですsystemctl restart ssh.service
。ssh -T
説明するx11forwarding yes
しかし、何も変わらなかった。
何をすべきかを知っている人はいますか?変更した後は、ユーザープログラム構成の特定の変更を確認することが重要です。
答え1
多くの人が同じエラーメッセージを持ってここに来て、それがの使用とは何の関係もないという事実に気付かないsu
でしょう。
Snapを使用してインストールされているすべての項目は機能しません。だからxeyes
andはxclock
うまくいくかもしれませんが、Ubuntuを新しくインストールしchromium-browser
たり、firefox
Ubuntuでは動作しません。
解決策は簡単です:export XAUTHORITY=$HOME/.Xauthority
リモートX11アプリケーションを実行する前に。
答え2
不安定オプション:
ログインしたホストで実行
xhost +
または、もう少し安全にしてください。
xhost <IP you want to log in to>
これにより、リモートホストからの接続が許可されます。
これはなぜ安全ではないのですか?そのホスト上のすべてのプログラムとユーザー(または存在するホスト上のすべてのプログラム/ユーザーxhost +
)は、画面にアクセスし、コンピュータで実行されているすべてのキーストロークを読み取ることができますxhost
。
より安全オプション:
リモートコンピュータにX11サーバーの認証キーを追加します。
ローカルコンピュータで必要な「魔法クッキー」を一覧表示します。
# xauth list
hostname/unix:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
リモートシステムで~/.Xauthority
ファイルに秘密を追加します。最も簡単な方法は次のとおりですxauth
。
# setenv DISPLAY <ORIGIN_IP>:0
# xauth add <ORIGIN_IP>:0 MIT-MAGIC-COOKIE-1 0123456789abcdef0123456789abcdef
これらのシステム間のX11プロトコルデータは暗号化されていないため、脆弱です。
答え3
user1が元のユーザー(パスワードを知っている)で、user2がターゲットユーザー(不明なパスワード)であると仮定すると、それを機能させることができます。
% ssh -Y user1@target-box
Password: xxxxxxxxxxxxx
user1@target-box% sudo -u user2 bash
Password: xxxxxxxxxxxxx
user2@target-box% cp ~user1/.Xauthority ~user2
user2@target-box% xterm &
また、投稿に正しいsshd設定が指定されているとします。