Xauthorityの構成
Linux VDAは、対話型リモート処理向けにX11ディスプレイ機能(xtermやgvimを含む)を使用する環境をサポートします。この機能は、XClientとXServer間の安全な通信を確保するために必要なセキュリティメカニズムを提供します。
-
この安全な通信の許可を確保するには、次の2つの方法があります。
- Xhost。デフォルトでは、Xhostはlocalhostの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
<!--NeedCopy-->
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
<!--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 Cookieを取得します。
ps aux | grep -i xorg <!--NeedCopy-->このコマンドは、Xorgプロセスと、Xorgの起動時にXorgに渡されたパラメーターを表示します。別のパラメーターは、どの
.Xauthorityファイルが使用されているかを表示します。例:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Xauthコマンドを使用してCookieを表示します。
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Xauthコマンドを使用して、~/.Xauthorityに含まれるCookieを表示します。同じディスプレイ番号の場合、表示されるCookieはXorgとXClientの.Xauthorityファイルで同じである必要があります。 -
Cookieが同じである場合は、Linux VDAのIPアドレス (例: 10.158.11.11) と公開デスクトップのディスプレイ番号 (例: 160) を使用して、リモートディスプレイポートのアクセシビリティを確認します。
XClientマシンで次のコマンドを実行します。
telnet 10.158.11.11 6160 <!--NeedCopy-->ポート番号は6000 + <ディスプレイ番号>の合計です。
このtelnet操作が失敗した場合、ファイアウォールが要求をブロックしている可能性があります。