XauthおよびDISPLAY変数について

XauthおよびDISPLAY変数について

xauth変数と変数を自動的に生成するDISPLAY方法、これらの値が選択される理由を知りたいです。一部の手動設定も正しくないことがわかりました。ssh -XDISPLAYDISPLAY

この出力の各列はどういう意味ですか?

[root@serverdg ~]# xauth list
serverdg2/unix:11  MIT-MAGIC-COOKIE-1  87b515cf92e356b7702d3afd721f7fe1
serverdg2/unix:10  MIT-MAGIC-COOKIE-1  e8f9bfb5abac8757f4864656ce4f9bd1
serverdg/unix:12  MIT-MAGIC-COOKIE-1  7270008abd9f949a9b1af76c7742da9e
serverdg/unix:11  MIT-MAGIC-COOKIE-1  bb2f1768b445f372e5975d728579517e
serverdg/unix:10  MIT-MAGIC-COOKIE-1  475b9a6cbc7567b956511d5d2d27950b

ssh -X変数値を生成するためにこの例でlikeを使用したのはなぜですか?DISPLAY10.0

[root@serverdg ~]# echo $DISPLAY
localhost:10.0

私が知っているのは、Xを使用するために現在のユーザーを別のユーザー(user)に変更するxauth list場合は、この値をコピーする必要があることです。これは、を使用して新しいログインが行われたときに生成されるためです。DISPLAYsu - userssh

答え1

環境DISPLAY変数はアプリケーションに接続する方法を伝えます。X仕える人。 X サーバーは、画面にウィンドウを表示するシステムの一部です。モニターはウィンドウを表示できるものです。

Unixシステムは複数のモニタを持つことができます。仮想コンソールまたは複数の物理コンソール、または一部のモニター仮想、または一部のディスプレイがネットワーク経由でアクセスされるためです。ssh -Xネットワーク経由でリモートディスプレイに接続を転送します。

各ディスプレイには番号があります。この数字の目的は、単にモニターを区別することです。:0表示番号0、:1表示番号1などです。表示番号を使用する方法の1つは、アプリケーションがXサーバーに接続できるようにすることです。特定の名前を計算するために使用されます。ソケットファイル/etc/.X11-unix/X0、…)またはXサーバーがリッスンするTCPポート番号(6000 +ディスプレイ番号)。

.0数字の後に部品を表示するのは時代遅れの概念です。ディスプレイが複数の画面で構成され、ウィンドウが特定の画面にバインドされる「画面」番号。最新のシステムでは、Xサーバーは単一の画面をレンダリングし、アプリケーションウィンドウをモニタ間で移動できるようにします。同等です。:NUMBER:NUMBER.0

コロンの前にコンピュータ名を付けることができます。これにより、アプリケーションとXサーバー間のTCP通信が可能になります。この通信はネットワークスヌーピングや中間者攻撃から保護されないため、実際のネットワークではほとんど推奨されませんが、同じホスト上で実行されている仮想マシン間のネットワークなどの状況によっては役立ちます。 。実際には、両方の機能が機能的に同じです(ただし、背後でより高速な通信メカニズムを使用でき、すべてのXサーバーがローカルおよびTCPを介して受信するわけではないため、どちらか一方のみが機能できます。)することもできます)。しかし、おそらくどこかの設定エラーです)。localhost:NUMBER:NUMBER:NUMBERlocalhost:NUMBER:NUMBER

Xディスプレイを作成するエンティティはディスプレイ番号を選択する必要があります。 (サーバーが決定できるようにすることでこれを行うことができますが、そうであれば、DISPLAYアプリケーション用に設定するためにサーバーが選択した番号を見つける必要があります)。デジタルファイル。物理的な表示のためのスペースを残すために、SSHは10で始まる数字のみを選択します。

DISPLAY表示されるエンティティが作成されるまで数字を選択できないため、手動設定は通常正しくありません。たとえば、SSH自体の場合ですssh -X。手動で設定すると、DISPLAY間違った番号を取得したり、存在しないディスプレイが宣伝される可能性があります(X11転送が拒否された場合など)。

他のユーザーや別のコンピューターのユーザーが自分のものではなく、Xモニターに接続しようとする可能性があります。 Xはリモート接続を許可するように設計されているため、Unixユーザーにのみ依存することはできません。だからXは承認メカニズム:アプリケーションがXディスプレイに接続する場合は、そのアプリケーションが認証されたことを証明する必要があります。現代では、「クッキー」形式MIT-MAGIC-COOKIE-1(16進数で16バイト)という1つの認証メカニズムしかありません。クッキーは、サーバーの起動時に生成され、正当なユーザーのみが読み取ることができるファイルに保存される長いランダム文字列です。 Xディスプレイに接続するには、アプリケーションがCookie値をサーバーに送信する必要があります。 Cookieの値が正しくない場合、サーバーは接続を拒否します。

関連情報