SSHとsuを介したX11配信

SSHとsuを介したX11配信

奇妙なことは、X11転送でsshを使用して接続すると、ユーザーとルートは表示できますが、xclock他のユーザーは表示できないことです。なぜ?

mahmood@cluster:~$ xclock
^C
mahmood@cluster:~$ su
Password:
root@cluster:mahmood# xclock
^C
root@cluster:mahmood# su - hmousavi
hmousavi@cluster:~$ xclock
MobaXterm X11 proxy: Authorisation not recognised
Error: Can't open display: localhost:10.0
hmousavi@cluster:~$

PS:ウィンドウを^C見ることができるという意味なので、端末に戻るキーをxclock押します。^C

ベストアンサー1

X11ディスプレイに接続するには、ディスプレイ名(通常はDISPLAY環境変数に渡される)と2つの情報が必要です。クッキー、これはすべてのアプリケーションが接続時に表示する必要があるモニターパスワードです。通常、Cookieはに保存されますが、環境変数に応じて他のファイル~/.Xauthorityに保存することもできます。XAUTHORITY

DISPLAYSSHで設定した値は、呼び出し間でも維持されているようですsu。しかし、クッキーはそこにあります~mahmood/.Xauthority。プログラムをhmousaviとして実行すると、プログラムはそこでクッキーを見つけて~hmousavi/.Xauthority別の値を見つけます。

原則として実行できますが、XAUTHORITY=~mahmood/.Xauthority xclockhmousaviにはファイルを読み取る権限がない可能性があります。.Xauthority他のユーザーはファイルを読み取ることはできません。このxauthコマンドは2回使用できます。一度はクッキー値(xauth list localhost:10.0)を抽出するためにmahmoodで、一度は値を取得するためにhmousaviとして使用できますが(xauth merge)面倒です。 X11アプリケーションを操作する最も簡単な方法は、全体としてSSHを使用することです。 SSHは自動的にX11転送を設定するためです。

mahmood@cluster:~$ ssh -X hmousavi@localhost
hmousavi@cluster:~$ xclock

.ssh/authorized_keysこれを可能にするには、mahmoodのSSH公開鍵をhmousaviに追加してください。

おすすめ記事