Linux Virtual Delivery Agent 2104

Xauthorityの構成

Linux VDAは、対話型のリモート制御でX11ディスプレイ機能(xtermgvimを含む)を使用する環境をサポートしています。この機能は、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
<!--NeedCopy-->

XClientがリモートでXorgに接続する場合、2つの前提条件を満たす必要があります:

  • DISPLAY環境変数をリモートXServerに設定します。
  • XorgでCookie番号の1つを含む.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環境変数を正しく設定した後、XServerでGUIが自動的に表示されます。

トラブルシューティング

Xauthorityが機能しない場合は、次のトラブルシューティング手順に従ってください:

  1. root特権を持つ管理者として、すべてのXorg Cookieを取得します:

    ps aux | grep -i xorg
    <!--NeedCopy-->
    

    このコマンドは、起動中Xorgに渡されるXorgプロセスとパラメーターを表示します。もう1つのパラメーターは、どの.Xauthorityファイルが使用されるかを表示します。例:

    /var/xdl/xauth/.Xauthority110
    <!--NeedCopy-->
    

    Xauthコマンドを使用して、Cookieを表示します:

    Xauth -f /var/xdl/xauth/.Xauthority110
    <!--NeedCopy-->
    
  2. Xauthコマンドを使用して、~/.Xauthorityに含まれるCookieを表示します。同じ表示番号の場合、表示されるCookieはXorgおよびXClientの.Xauthorityファイルで同じである必要があります。

  3. Cookieが同じあれば、リモートディスプレイポートがLinux VDAのIPアドレス(例:10.158.11.11)と公開デスクトップの表示番号(例:160)を使用してアクセスできるかを確認します。

    XClientマシンで次のコマンドを実行します。

    telnet 10.158.11.11 6160
    <!--NeedCopy-->
    

    ポート番号は、6000 + 表示番号の合計です。

    telnetの操作が失敗すると、ファイアウォールが要求をブロックすることがあります。

Xauthorityの構成