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 サーバーは、降順の重要度で、一般オプションに対して以下のファイルを読み込みます。
/etc/tigervnc/vncserver-config-mandatory
このファイルは、デフォルト設定に置き換わるもので、ユーザー別の設定よりも優先度が高くなります。これは、特定の VNC オプションを適用するシステム管理者を対象としています。
$HOME/.vnc/config
個々のユーザーは、このファイルでデフォルトの VNC 設定をオーバーライドできます。
/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
手順
ユーザーをディスプレイとポート番号にぱっします。
/etc/tigervnc/vncserver.users
設定ファイルで、VNC セッションをエクスポートする各サーバーユーザーに行を追加します。:user-number=user-name
- user-number を、選択した既存ユーザーにマッピングされたポートおよびディスプレイ番号に置き換えます。
- user-name を、選択した既存ユーザーのユーザー名に置き換えます。
以下に例を示します。
:2=vncuser
ファイアウォールで TCP ポート 5900 から 5903 を開きます。
[root]# firewall-cmd --permanent --add-service=vnc-server
ファイアウォールルールを再読み込みします。
[root]# firewall-cmd --reload
以下の行を
/etc/tigervnc/vncserver-config-defaults
設定ファイルに追加します。session=gnome alwaysshared
この設定には、以下の影響があります。
- VNC サーバーは、リモートユーザーがログインすると GNOME セッションを開始します。
- 複数のユーザーが同時に VNC サーバーに接続できます。
VNC セッションをエクスポートする各サーバーユーザーとして、ユーザーの VNC パスワードを設定します。
[regular-user]$ vncpasswd
サーバー上のデスクトップに接続する場合は、リモートクライアントがこのパスワードを入力する必要があります。
ユーザーに VNC を設定している場合は、設定ファイルに正しい SELinux コンテキストがあることを確認します。
[regular-user]$ restorecon -RFv ~/.vnc
通常ユーザーの VNC サーバーユニットを有効にして起動します。
[root]# systemctl enable --now vncserver@:user-number
サーバーがプロプライエタリー Nvidia ドライバーを使用する場合は、Wayland を無効にします。
-
/etc/gdm/custom.conf
設定ファイルのWaylandEnable=False
行のコメントを解除します。 -
DefaultSession=gnome-xorg.desktop
オプションを、設定ファイルの[daemon]
セクションに追加します。 - サーバーを再起動します。
-
関連情報
- 複数のサーバーユーザーへの VNC アクセスを有効にするには、5903 を超える TCP ポートを開きます。詳細は、Opening a port using CLI または Opening ports using GUI を参照してください。
5.3.4. 複数のユーザーとして VNC サーバーへの接続
この手順では、vncviewer
アプリケーションを使用してリモートデスクトップセッションに接続します。リモートデスクトップへの複数の接続を同時に開くことができます。
前提条件
- 複数のユーザーのデスクトップアクセスが、サーバーで有効になります。詳細は 「サーバーでマルチユーザー VNC アクセスの有効化」 を参照してください。
手順
VNC サーバーに接続します。
$ vncviewer --shared server-ip:display
- server-ip を、接続しているサーバーの IP アドレスに置き換えます。
- display を、サーバーユーザーが VNC セッションをエクスポートするディスプレイ番号に置き換えます。