Xオーソリティ

最終公開日 : Nov 13, 2026
Linux VDA は、対話型リモート処理のために X11 ディスプレイ機能 (xterm および gvim を含む) を使用する環境をサポートします。この機能は、XClient と XServer 間の安全な通信を確保するために必要なセキュリティメカニズムを提供します。
この安全な通信の権限を保護するには、次の2つの方法があります。
  • Xhost。デフォルトでは、Xhost はローカルホストの XClient のみが XServer と通信することを許可します。リモートの XClient が XServer にアクセスすることを許可する場合、特定のマシンで Xhost コマンドを実行して権限を付与する必要があります。または、代わりに xhost + を使用して、任意の XClient が XServer に接続できるようにすることもできます。
  • Xauthority。.Xauthority ファイルは各ユーザーのホームディレクトリにあります。これは、XServer の認証のために xauth が使用する Cookie に資格情報を保存するために使用されます。XServer インスタンス (Xorg) が起動されると、その特定のディスプレイへの接続を認証するために Cookie が使用されます。

仕組み

Xorg が起動すると、.Xauthority ファイルが Xorg に渡されます。この .Xauthority ファイルには、次の要素が含まれています。
  • ディスプレイ番号
  • リモート要求プロトコル
  • Cookie 番号
xauth コマンドを使用してこのファイルを参照できます。例:
# xauth -f ~/.Xauthority

# > list

# > us01msip06:107  MIT-MAGIC-COOKIE-1  fb228d1b695729242616c5908f11624b
XClient が Xorg にリモートで接続する場合、2つの前提条件を満たす必要があります。
  • DISPLAY 環境変数をリモートの XServer に設定します。
  • Xorg の Cookie 番号のいずれかを含む .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
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}
    注:
    XAUTHORITY環境変数が設定されていない場合、~/.Xauthorityファイルがデフォルトで使用されます。
  • 共有ホームディレクトリをマウントして.XauthorityファイルをXClientに渡す
    便利な方法は、ログオンユーザー用に共有ホームディレクトリをマウントすることです。Linux VDAがICAセッションを開始すると、.Xauthorityファイルはログオンユーザーのホームディレクトリに作成されます。このホームディレクトリがXClientと共有されている場合、ユーザーはこの.XauthorityファイルをXClientに手動で転送する必要はありません。DISPLAYおよびXAUTHORITY環境変数が正しく設定されると、GUIはXServerデスクトップに自動的に表示されます。

トラブルシューティング

Xauthorityが機能しない場合は、以下のトラブルシューティング手順に従ってください。
  1. root権限を持つ管理者として、すべてのXorgクッキーを取得します。
    ps aux | grep -i xorg
    このコマンドは、Xorgプロセスと、起動時にXorgに渡されたパラメーターを表示します。別のパラメーターは、どの.Xauthorityファイルが使用されているかを表示します。例:
    /var/xdl/xauth/.Xauthority110
    Xauthコマンドを使用してクッキーを表示します。
    Xauth -f /var/xdl/xauth/.Xauthority110
  2. Xauthコマンドを使用して、~/.Xauthorityに含まれるクッキーを表示します。同じディスプレイ番号の場合、表示されるクッキーはXorgとXClientの.Xauthorityファイルで同じである必要があります。
  3. クッキーが同じ場合は、Linux VDAのIPアドレスと公開デスクトップのディスプレイ番号を使用して、リモートディスプレイポートのアクセシビリティを確認します。
    たとえば、XClientマシンで次のコマンドを実行します。
    telnet 10.158.11.11 6160
    ポート番号は6000 + \<ディスプレイ番号\>の合計です。
    このtelnet操作が失敗した場合、ファイアウォールが要求をブロックしている可能性があります。