5.3. 複数のユーザーとしてデスクトップにリモートアクセス

RHEL サーバーのデスクトップにリモートから接続し、別のユーザーとして複数のセッションを同時に開くことができます。

重要

次の手順は、RHEL 8.3 以降に適用されます。RHEL 8.0 - 8.2 を使用している場合は、How to configure user specific VNC Server in Red Hat Enterprise Linux 8.0 - 8.2? を参照してください。

前提条件

  • VNC サーバーをインストールします。

    # yum install tigervnc-server
  • VNC クライアントをインストールします。

    # yum install tigervnc

5.3.1. VNC でのユーザーへのポートおよび表示番号のマッピング

VNC を使用すると、クライアントはサーバーの異なるユーザーのデスクトップセッションに接続できます。ディスプレイ番号と TCP ポート番号は、VNC セッションをエクスポートする各サーバーユーザーに割り当てられます。クライアントはポート番号を使用して、接続するサーバーユーザーを指定します。

複数のクライアントが同じポート番号を使用して接続している場合は、すべてのクライアントが VNC セッションを同じサーバーユーザーで開きます。

VNC セッションをエクスポートする各サーバーユーザーにマッピングを設定する必要があります。このようなユーザーはすべて、一意のポートとディスプレイ番号を選択する必要があります。

推奨されるマッピング

Red Hat では、最初のユーザーに対してポート番号 5902 およびディスプレイ番号 2 を使い始め、その後のユーザーにはその数を 1 つずつ増やしていくことを推奨します。

ポート番号 5900 およびディスプレイ番号 0 は、現在グラフィカルセッションにログインしているサーバーユーザーを表します。グラフィカルセッションにすでにログインしているユーザーの VNC サーバーを開始することはできません。

表5.1 ポートとディスプレイ番号のペア

ポート番号ディスプレイ番号備考

5900

0

ログインしているユーザー

5901

1

 

5902

2

最初に推奨される VNC ユーザー

5903

3

 

 
重要

Red Hat は、VNC セッションをエクスポートするように root ユーザーを設定しないことを推奨します。root VNC セッションは安全でないため、セッションの特定要素が期待どおりに機能しない可能性があります。

ファイアウォールのルール

ファイアウォール設定で選択したポートを開く必要があります。ファイアウォールで vnc-server サービスを許可すると、5900 から 5903 にポートが開きます。追加のサーバーユーザーへのアクセスを有効にする必要がある場合は、手動でポート番号を指定して 5903 を超えるポートを開く必要があります。

5.3.2. VNC サーバー設定ファイル

複数の設定ファイルが VNC サーバーの動作に影響します。ユーザーマッピングとさまざまなグローバルオプションを設定できます。

一般的なオプション

VNC サーバーの一般的なオプションは、/etc/tigervnc/vncserver-config-defaults 設定ファイルで設定できます。ファイルは、以下の形式を使用します。

option1=value
option2

以下に例を示します。

session=gnome
alwaysshared
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=2000x1200

設定ファイルの優先順位

VNC サーバーは、降順の重要度で、一般オプションに対して以下のファイルを読み込みます。

  1. /etc/tigervnc/vncserver-config-mandatory

    このファイルは、デフォルト設定に置き換わるもので、ユーザー別の設定よりも優先度が高くなります。これは、特定の VNC オプションを適用するシステム管理者を対象としています。

  2. $HOME/.vnc/config

    個々のユーザーは、このファイルでデフォルトの VNC 設定をオーバーライドできます。

  3. /etc/tigervnc/vncserver-config-defaults

    このファイルは、デフォルトの VNC 設定を保管します。

ユーザーマッピング

/etc/tigervnc/vncserver.users 設定ファイルで、ユーザーと関連するポートとディスプレイ番号のマッピングを設定できます。ファイルは、以下の形式を使用します。

:number=user

以下に例を示します。

:2=test
:3=vncuser

関連情報

  • 利用可能な設定オプションのリストは、Xvnc(1) の man ページを参照してください。

5.3.3. サーバーでマルチユーザー VNC アクセスの有効化

この手順では、複数のユーザーが同時に VNC セッションを開くように RHEL サーバーを設定します。

前提条件

  • systemd ユニットファイルを使用して VNC を設定している場合は、古い VNC 設定を削除します。

    [root]# rm /etc/systemd/system/vncserver@.service

手順

  1. ユーザーをディスプレイとポート番号にぱっします。

    /etc/tigervnc/vncserver.users 設定ファイルで、VNC セッションをエクスポートする各サーバーユーザーに行を追加します。

    :user-number=user-name
    • user-number を、選択した既存ユーザーにマッピングされたポートおよびディスプレイ番号に置き換えます。
    • user-name を、選択した既存ユーザーのユーザー名に置き換えます。

    以下に例を示します。

    :2=vncuser
  2. ファイアウォールで TCP ポート 5900 から 5903 を開きます。

    [root]# firewall-cmd --permanent --add-service=vnc-server
  3. ファイアウォールルールを再読み込みします。

    [root]# firewall-cmd --reload
  4. 以下の行を /etc/tigervnc/vncserver-config-defaults 設定ファイルに追加します。

    session=gnome
    alwaysshared

    この設定には、以下の影響があります。

    • VNC サーバーは、リモートユーザーがログインすると GNOME セッションを開始します。
    • 複数のユーザーが同時に VNC サーバーに接続できます。
  5. VNC セッションをエクスポートする各サーバーユーザーとして、ユーザーの VNC パスワードを設定します。

    [regular-user]$ vncpasswd

    サーバー上のデスクトップに接続する場合は、リモートクライアントがこのパスワードを入力する必要があります。

  6. ユーザーに VNC を設定している場合は、設定ファイルに正しい SELinux コンテキストがあることを確認します。

    [regular-user]$ restorecon -RFv ~/.vnc
  7. 通常ユーザーの VNC サーバーユニットを有効にして起動します。

    [root]# systemctl enable --now vncserver@:user-number
  8. サーバーがプロプライエタリー Nvidia ドライバーを使用する場合は、Wayland を無効にします。

    1. /etc/gdm/custom.conf 設定ファイルの WaylandEnable=False 行のコメントを解除します。
    2. DefaultSession=gnome-xorg.desktop オプションを、設定ファイルの [daemon] セクションに追加します。
    3. サーバーを再起動します。

関連情報

  • 複数のサーバーユーザーへの VNC アクセスを有効にするには、5903 を超える TCP ポートを開きます。詳細は、Opening a port using CLI または Opening ports using GUI を参照してください。

5.3.4. 複数のユーザーとして VNC サーバーへの接続

この手順では、vncviewer アプリケーションを使用してリモートデスクトップセッションに接続します。リモートデスクトップへの複数の接続を同時に開くことができます。

前提条件

手順

  • VNC サーバーに接続します。

    $ vncviewer --shared server-ip:display
    • server-ip を、接続しているサーバーの IP アドレスに置き換えます。
    • display を、サーバーユーザーが VNC セッションをエクスポートするディスプレイ番号に置き換えます。