Xauthority の設定
Linux VDA は、インタラクティブなリモート処理のために X11 ディスプレイ機能 (xterm や gvim を含む) を使用する環境をサポートしています。この機能は、XClient と XServer 間の安全な通信を確保するために必要なセキュリティメカニズムを提供します。
-
この安全な通信のアクセス許可を保護するには、次の2つの方法があります。
- Xhost。デフォルトでは、Xhost は localhost の XClient のみが XServer と通信することを許可します。リモートの XClient が XServer にアクセスすることを許可する場合は、特定のコンピューターでアクセス許可を付与するために Xhost コマンドを実行する必要があります。または、xhost + を使用して、任意の XClient が XServer に接続できるようにすることもできます。
-
Xauthority。
.Xauthorityファイルは、各ユーザーのホームディレクトリにあります。これは、XServer の認証に xauth が使用するクッキーに資格情報を保存するために使用されます。XServer インスタンス (Xorg) が起動されると、その特定のディスプレイへの接続を認証するためにクッキーが使用されます。 -
仕組み
Xorg が起動すると、.Xauthority ファイルが Xorg に渡されます。この .Xauthority ファイルには、次の要素が含まれています。
- ディスプレイ番号
- リモート要求プロトコル
-
クッキー番号
- このファイルは、xauth コマンドを使用して参照できます。例:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
XClient が Xorg にリモートで接続する場合、次の2つの前提条件を満たす必要があります。
- DISPLAY 環境変数をリモート XServer に設定します。
- Xorg 内のクッキー番号のいずれかを含む
.Xauthorityファイルを取得します。
Xauthority の構成
リモート X11 ディスプレイ用に Linux VDA で Xauthority を有効にするには、次の2つのレジストリキーを作成する必要があります。
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "XauthEnabled" -d "0x00000001" --force
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "ListenTCP" -d "0x00000001" --force
<!--NeedCopy-->
Xauthority を有効にした後、.Xauthority ファイルを手動で、または共有ホームディレクトリをマウントして XClient に渡します。
-
.Xauthorityファイルを手動で XClient に渡すICA® セッションの起動後、Linux VDA は XClient 用の
.Xauthorityファイルを生成し、ログオンユーザーのホームディレクトリに保存します。この.Xauthorityファイルをリモート XClient マシンにコピーし、DISPLAY および XAUTHORITY 環境変数を設定できます。DISPLAY は.Xauthorityファイルに保存されているディスプレイ番号であり、XAUTHORITY は Xauthority のファイルパスです。例については、次のコマンドを参照してください。export DISPLAY={Display number stored in the Xauthority file} export XAUTHORITY={the file path of .Xauthority} <!--NeedCopy-->注:
XAUTHORITY 環境変数が設定されていない場合、デフォルトで
~/.Xauthorityファイルが使用されます。 -
共有ホームディレクトリをマウントして
.Xauthorityファイルを XClient に渡す便利な方法は、ログオンユーザー用に共有ホームディレクトリをマウントすることです。Linux VDA が ICA セッションを開始すると、
.Xauthorityファイルはログオンユーザーのホームディレクトリに作成されます。このホームディレクトリが XClient と共有されている場合、ユーザーはこの.Xauthorityファイルを手動で XClient に転送する必要はありません。DISPLAY および XAUTHORITY 環境変数が正しく設定されると、GUI は XServer デスクトップに自動的に表示されます。
トラブルシューティング
Xauthority が機能しない場合は、次のトラブルシューティング手順に従ってください。
-
root 権限を持つ管理者として、すべての Xorg クッキーを取得します。
ps aux | grep -i xorg <!--NeedCopy-->このコマンドは、Xorg プロセスと、起動時に Xorg に渡されたパラメーターを表示します。別のパラメーターは、使用されている
.Xauthorityファイルを表示します。例:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Xauth コマンドを使用してクッキーを表示します。
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Xauth コマンドを使用して、
~/.Xauthorityに含まれるクッキーを表示します。同じディスプレイ番号の場合、表示されるクッキーは Xorg と XClient の.Xauthorityファイルで同じである必要があります。 -
クッキーが同じである場合は、Linux VDA の IP アドレス (例: 10.158.11.11) と公開デスクトップのディスプレイ番号 (例: 160) を使用して、リモートディスプレイポートのアクセシビリティを確認します。
XClient マシンで次のコマンドを実行します。
telnet 10.158.11.11 6160 <!--NeedCopy-->ポート番号は 6000 + <ディスプレイ番号> の合計です。
この telnet 操作が失敗した場合、ファイアウォールが要求をブロックしている可能性があります。