CentOS 7 で GNOME デスクトップ用の VNC リモート アクセスをインストールおよび設定する方法

はじめに

VNC または Virtual Network Computing は、ユーザーがリモート コンピューター システムに接続し、グラフィカル ユーザー インターフェイス (GUI) からそのリソースを使用できる、プラットフォーム非依存型のプロトコルです。 VNC では、両方のコンピュータ間でクリップボードを共有することもできます。 Microsoft Windows サーバーのバックグラウンドを持っている場合、VNC は、OS X、Linux、および他のオペレーティング システムでも利用できることを除けば、Remote Desktop Service とよく似ています。 VNC サーバーは、リモート コンピューター (ドロップレット) 上で実行され、受信したクライアント リクエストに対応します。

Goals

このチュートリアルでは、CentOS 7 に VNC サーバーをインストールし設定する方法を学習します。 TigerVNC GitHub リポジトリから自由に入手できる TigerVNC サーバーをインストールします。

VNC がどのように機能するかを示すために、CentOS サーバーに GNOME デスクトップもインストールします。 2 つのユーザー アカウントを作成し、それらのために VNC アクセスを設定します。 その後、リモート デスクトップへの接続をテストし、最後に、SSH トンネルを介してリモート接続を保護する方法を学びます。

前提条件

このチュートリアルで示すコマンド、パッケージ、ファイルは、CentOS 7 の最小インストールでテストされています。 以下を推奨します。

  • ディストリビューション。 CentOS 7, 64-bit
  • Resource Requirements: 2 GB RAM の Droplet
  • このチュートリアルに従うには、sudo ユーザーを使用する必要があります。 sudo権限がどのように動作するか理解するために、このDigitalOceanチュートリアルを参照することができます

Warning: このチュートリアルにあるコマンド、クエリ、または設定を本番のLinuxサーバで実行しないでください。

ステップ1 – 2つのユーザーアカウントを作成する

最初に、2つのユーザーアカウントを作成します。 これらのアカウントは、VNC クライアントから CentOS 7 サーバーにリモートで接続します。

  • joevnc
  • janevnc

joevnc のユーザー アカウントを追加するには、次のコマンドを実行します:

sudo useradd -c "User Joe Configured for VNC Access" joevnc

次に、passwd コマンドを実行して joevnc のパスワードを変更します:

sudo passwd joevnc

新しいパスワードについて出力が尋ねられます。 入力すると、アカウントにログインできるようになります。

Changing password for user joevnc.New password:Retype new password:passwd: all authentication tokens updated successfully.

次に、janevnc のアカウントを作成します:

sudo useradd -c "User Jane Configured for VNC Access" janevnc

janevncのパスワードを設定します:

sudo passwd janevnc

ステップ2 – GNOME デスクトップのインストール

次に、GNOME デスクトップをインストールします。 GNOME は共同作業です。フリーでオープンソースのソフトウェアの集合体であり、非常に人気のあるデスクトップ環境を構成しています。 KDE のようなデスクトップ環境は他にもありますが、GNOME の方が人気があります。 VNC のユーザは GNOME を使って、そのデスクトップからサーバと対話することになります。

sudo yum groupinstall -y "GNOME Desktop"

ネットワークの速度によっては、数分かかることがあります。

パッケージグループがインストールされたら、サーバーを再起動します:

sudo reboot

Troubleshooting – Server Stuck at Boot Phase

サーバーのセットアップ方法によっては、マシンが起動したときに次のようなメッセージを表示して起動フェーズに留まります:

Initial setup of CentOS Linux 7 (core)1) License information (Licence not accepted)Please make your choice from above :

これを取り除くには、1 (license read), 2 (accept license), それから C (to continue) を押してください。 Cボタンを2回以上押す必要がある場合があります。 下の画像はこれを示しています。

このエラーが表示されず、起動プロセスがスムーズな場合は、次のステップに進むことができます。

ステップ 3 – TigerVNC Server のインストール

TigerVNC はリモート デスクトップ接続を行うためのソフトウエアです。

Tiger VNC サーバーをインストールします:

sudo yum install -y tigervnc-server

これにより、次のような出力が表示されます:

Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile. . .Running transaction Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1 Verifying : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1Installed: tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7Complete!

これで、VNC サーバーと GNOME デスクトップのインストールが完了しました。 また、VNC を介して接続するための 2 つのユーザー アカウントも作成しました。

Step 4 – 2 つのクライアント用に VNC サービスを設定する

VNC サーバーは、最初にインストールすると自動的に起動されません。 これを確認するには、次のコマンドを実行します:

sudo systemctl status vncserver@:.service

出力は次のようになります:

vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled) Active: inactive (dead)

次のコマンドも実行できます:

sudo systemctl is-enabled [email protected]

出力は次のようになります:

disabled

ではなぜ無効になっているのでしょうか。 それは、各ユーザーがVNCサービス・デーモンの個別のインスタンスを起動するからです。 言い換えれば、VNCはすべてのユーザの要求に応える1つのシングルプロセスとして実行されるわけではありません。 VNC 経由で接続する各ユーザーは、デーモンの新しいインスタンスを起動しなければなりません (または、システム管理者がこれを自動化できます)。

CentOS 7 は systemd デーモンを使用して、他のサービスを開始します。 systemd の下でネイティブに動作する各サービスは、yum インストーラーによって /lib/systemd/system ディレクトリの下に置かれるサービス・ユニット・ファイルを持っています。 ブート時に自動的に開始されるプロセスには、このサービスユニットファイルへのリンクが /etc/systemd/system/ ディレクトリに置かれます。

この例では、汎用サービスユニットファイルが /lib/systemd/system/ ディレクトリに作成されていますが、/etc/systemd/system/ 下にリンクは作成されていません。 これをテストするには、次のコマンドを実行します:

sudo ls -l /lib/systemd/system/vnc*

表示されるはずです:

-rw-r--r--. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/[email protected]

次に、/etc/systemd/system/ 以下をチェックします:

sudo ls -l /etc/systemd/system/*.wants/vnc*

これは存在しません:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

では、最初のステップとして、2 つのユーザー用に新しい VNC サーバーのインスタンスを起動することです。 これを行うには、/etc/system/systemの下に一般的なVNCサービスユニットファイルのコピーを2つ作成する必要があります。 以下のコードスニペットでは、2つの異なる名前のコピーを作成しています:

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:4.servicesudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:5.service

では、なぜコピーしたファイル名に(コロンと一緒に)2つの数字を追加したのでしょうか。

繰り返しになりますが、それは個々の VNC サービスの概念に帰着します。 VNC それ自身はポート 5900 で実行されます。 各ユーザーは自分自身のVNCサーバーを実行するので、各ユーザーは別々のポート経由で接続する必要があります。 ファイル名に数字を追加することで、5900のサブポートとしてそのサービスを実行するようにVNCに指示します。 したがって、このケースでは、joevnc の VNC サービスはポート 5904 (5900 + 4) で、janevnc のものは 5905 (5900 + 5) で実行されます。

次に、各クライアント用のサービス ユニット ファイルを編集します。 8727> ファイルを vi エディターで開きます。

sudo vi /etc/systemd/system/vncserver@:4.service

「クイック ハウツー」セクションを見ると、最初のステップはすでに完了していることがわかります。 あとは、残りのステップを実行する必要があります。 また、コメントは、VNC が非信頼接続であることを教えてくれます。 これについては後で説明します。

とりあえず、ファイルの セクションを編集し、<USER> のインスタンスを joevnc に置き換えてください。 また、ExecStartパラメータの末尾に-geometry 1280x1024句を追加します。 これは、VNCが開始すべき画面サイズを伝えるだけです。 合計で2行を修正することになります。 編集したファイルは以下のようになります(ファイル全体は表示されないことに注意してください):

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service# 2. Edit <USER> and vncserver parameters appropriately# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:<display>.service`#. . .Description=Remote desktop service (VNC)After=syslog.target network.targetType=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/joevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

ファイルを保存し、viを終了します。

同様に、vi で /etc/systemd/system/vncserver@:5.service ファイルを開き、ユーザー janevnc 用に変更を加えます:

sudo vi /etc/systemd/system/vncserver@:5.service

ここで、変更点をマークした セクションだけを示します:

Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l janevnc -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/janevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

次に、次のコマンドを実行して systemd デーモンをリロードするとともに、起動時に 2 ユーザー用に VNC が起動するかどうか確認します。

sudo systemctl daemon-reload

最初のサーバーインスタンスを有効にする:

sudo systemctl enable vncserver@:4.service

出力:

ln -s '/etc/systemd/system/vncserver@:4.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:4.service'

第2のサーバーインスタンスを有効にする:

sudo systemctl enable vncserver@:5.service

出力:

ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service'

これで、VNCサーバーインスタンスは2台構成になりました。

ステップ5 – ファイアウォールの設定

次に、ポート5904および5905のみを介してVNCトラフィックを許可するように、ファイアウォールを設定する必要があります。 CentOS 7 では、firewalld デーモンを介してダイナミック ファイアウォールを使用しており、変更を有効にするためにサービスを再起動する必要はありません。

firewalld サービスはシステム起動時に自動的に開始されますが、常に確認することをお勧めします:

sudo firewall-cmd --state

これは次のように表示されます:

running

何らかの理由で状態が “not running” となっている場合、次のコマンドを実行して実行中かどうかを確認します。

sudo systemctl start firewalld

次に、ポート 5904 と 5905 のルールを追加します:

sudo firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

出力:

success

ファイアウォールを再ロード:

sudo firewall-cmd --reload

出力:

success

ステップ 6 – VNC パスワードを設定

我々は、VNC を実際に使用するまであと一歩というところでしょう。 このステップでは、ユーザは VNC パスワードを設定する必要があります。 これらはユーザーのLinuxパスワードではなく、VNCセッションにログインするためのパスワードです。

CentOS7サーバーへの別のターミナル接続を開き、今度はjoevncとしてログインします。

ssh joevnc@your_server_ip

以下のコマンドを実行します:

vncserver

以下の出力に示すように、サーバーは joevnc に VNC パスワードを設定するよう要求します。 パスワードを入力した後、プログラムはユーザーのホームディレクトリに作成されるいくつかのファイルも表示します:

You will require a password to access your desktops.Password:Verify:xauth: file /home/joevnc/.Xauthority does not existNew 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1Creating default startup script /home/joevnc/.vnc/xstartupStarting applications specified in /home/joevnc/.vnc/xstartupLog file is /home/joevnc/.vnc/localhost.localdomain:1.log

New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1 を見てみましょう。localhost.localdomainはこの例ではサーバー名でしたが、あなたの場合は違うかもしれません。 サーバー名の後の数字に注目してください:(1、コロンで区切られています)。 これはjoevncのサービスユニットファイルの数字ではありません(4でした)。 これはjoevncのセッションがこのサーバーで実行される表示番号であり、サービスのポート番号(5904)そのものではないからです。

次に、新しいターミナル セッションを開き、janevnc としてログインします。 ここでも VNC サーバーを起動し、janevnc のパスワードを設定します。

vncserver

ディスプレイ 2 で janevnc のセッションが実行されることを示す同様の出力が表示されるはずです。

最後に、メインのターミナル セッションからサービスを再ロードします。

sudo systemctl daemon-reloadsudo systemctl restart vncserver@:4.servicesudo systemctl restart vncserver@:5.service

Step 7 – VNC クライアントでリモート デスクトップに接続する

このチュートリアルでは、ユーザー joevnc と janevnc が Windows コンピューターから CentOS 7 サーバーに接続しようとしているものと仮定します。 このクライアントは、グラフィカルな出力を表示することを除けば、PuTTY のようなターミナル クライアントと同じです。 様々なVNCクライアントがありますが、ここではRealVNCを使用します。 VNC Viewer for Mac OS Xも同じページからダウンロード可能で、Mac版もWindows版とほぼ同じです。

VNC Viewerを起動すると、このようなダイアログボックスが表示されます。

VNC Serverフィールドに、CentOS 7サーバーのIPアドレスを追加します。 サーバーのIPの後に、ポート番号5904をコロン(:)で区切って指定します。 5904を使用したのは、joevncのVNCサービスポートだからです。

また、VNC Viewerに暗号化方式を選択させることにしました。 このオプションは、ネットワークを介して送信されるパスワードのみを暗号化します。 それ以降のサーバとの通信は暗号化されません。 (最後のステップで安全な SSH トンネルを設定します。)

実際、警告メッセージはまさにそれを示しています:

とりあえず警告を受け入れてみてください。 パスワード プロンプトが表示されます:

以前に設定した joevnc の VNC パスワードを入力します。

リモート CentOS サーバーの GNOME デスクトップを示す新しいウィンドウが開きます:

デフォルトの歓迎メッセージを受諾してください。

これで joevnc は GNOME 電卓のようなグラフィカルツールを起動できます。

このデスクトップ接続を開いたままにしておくことができます。 IP アドレスは同じで、ポートは 5905:

janevnc が VNC Viewer でログインすると、joevnc に対して表示したのと同様に、歓迎メッセージのある空のデスクトップが表示されます。 つまり、2 人のユーザーはデスクトップ インスタンスを共有していません。joevnc のデスクトップはまだ電卓を表示しているはずです。

リモート デスクトップ セッションを終了するには、単にウィンドウを閉じればよいのです。 しかし、これは、サーバー上のバックグラウンドでユーザーのVNCサービスを停止しません。 サービスが停止または再起動されず、マシンが再起動しなかった場合、次のログオン時に同じデスクトップセッションが表示されます。

joevncおよびjanevnc用のVNC Viewerウィンドウを閉じます。 それらのターミナルセッションも閉じます。 メイン ターミナル ウィンドウから、VNC サービスがまだ実行されているかどうかを確認します:

sudo systemctl status vncserver@:4.service

出力は、リモート デスクトップがまだ実行されていることを示しています:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: active (running) since Sat 2014-11-01 12:06:49 EST; 58min ago Process: 2014 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

2番目のサービスを確認します:

sudo systemctl status vncserver@:5.service

こちらも実行中:

vncserver@:5.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:5.service; enabled) Active: active (running) since Sat 2014-11-01 12:42:56 EST; 22min ago Process: 3748 ExecStart=/sbin/runuser -l janevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

この時点で joevnc のデスクトップにログインしようとすると、同じ電卓アプリケーションが開いていると思われます。

これは、システム管理者にとって興味深い課題を提示します。 VNC を介してサーバーに接続している多数のユーザーがいる場合、不要になったときに彼らの VNC サービスを停止する何らかの方法を考案したいと思うかもしれません。 これは、いくつかの貴重なシステムリソースを節約することができます。

Troubleshooting – VNC Service Crashes

VNC をテストして遊んでいるうちに、サービスがクラッシュして回復不能になったことがあるかもしれません。 状態を確認しようとすると:

sudo systemctl status vncserver@:4.service

この長いエラー メッセージが表示されるかもしれません:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: failed (Result: exit-code) since Fri 2014-11-07 00:02:38 EST; 2min 20s ago Process: 2221 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=2) Process: 1257 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

サービスを開始しようとすると動作しない:

sudo systemctl start vncserver@:4.service

スタートアップの失敗:

Job for vncserver@:4.service failed. See 'systemctl status vncserver@:4.service' and 'journalctl -xn' for details.

通常は理由はとても簡単なものです。 /var/log/messages を確認してください。

sudo tail /var/log/messages

関連するエラーは次のようになります:

Nov 7 00:08:36 localhost runuser: Warning: localhost.localdomain:4 is taken because of /tmp/.X11-unix/X4Nov 7 00:08:36 localhost runuser: Remove this file if there is no X server localhost.localdomain:4Nov 7 00:08:36 localhost runuser: A VNC server is already running as :4Nov 7 00:08:36 localhost systemd: vncserver@:4.service: control process exited, code=exited status=2Nov 7 00:08:36 localhost systemd: Failed to start Remote desktop service (VNC).Nov 7 00:08:36 localhost systemd: Unit vncserver@:4.service entered failed state.Nov 7 00:08:36 localhost systemd: Failed to mark scope session-c3.scope as abandoned : Stale file handle

対処法は、/tmpフォルダの下のファイルを削除します:

sudo rm -i /tmp/.X11-unix/X4

出力してください。

rm: remove socket '/tmp/.X11-unix/X4'? y

次に、VNC サービスを開始します:

sudo systemctl start vncserver@:4.service

General Troubleshooting

比較的まれですが、VNC で作業中に他のエラーに遭遇することがあるかも知れません。 たとえば、リモート デスクトップ画面が真っ白になったり、ハングアップしたり、セッションが不可解なエラー メッセージとともにクラッシュしたり、VNC Viewer が正しく接続しなかったり、アプリケーションを起動するためのコマンドを GUI に送信できなかったり、などです。

よりよく理解するために、/var/log/messages ファイルをチェックすることをお勧めします。 時には、サーバーを再起動するか、極端な場合には VNC サービスを再作成する必要があるかもしれません。

システム リソースも原因になることがあり、Droplet に追加の RAM を追加する必要があるかもしれません。

ステップ 8 – SSH トンネリングによる VNC セッションのセキュリティ

これまで joevnc と janevnc はどちらも暗号化されていないチャネルを介してリモート デスクトップと接続していました。 前に見たように、VNC Viewer は接続時にこれについて警告します。セッションが始まると、パスワードだけが暗号化されます。 その後のネットワーク トラフィックとデータ転送は、誰でも途中で傍受できるようになっています。

SSH トンネリングについて

ここで Secure Shell (SSH) セッションが役に立ちます。 SSH を使用すると、VNC は SSH 暗号化セッションのコンテキスト内で実行できます。 これはトンネリングとして知られています。 事実上、VNCトラフィックはSSHプロトコルをピギーバックし、その結果、サーバとのすべての通信が暗号化されます。 これは、SSHがVNC上でラップアラウンド保護を提供し、VNCがあたかもSSH内のトンネルの中で実行されているので、トンネルと呼ばれています。 SSHトンネリングはPOP、X、IMAPのような他のプロトコルにも使用することができます。

SSH トンネリングは、基本的に、ある特定のポートからのアクセスを別のマシンの別のポートに変換する手段であるポート転送で動作します。 ポート転送では、クライアントアプリケーションがマシン A で動作しているポート A に接続すると、マシン B で動作しているポート B に透過的に転送されます。 ポート転送は、SSHプロトコルの機能の1つです。

SSHトンネリングに関するより詳しい情報は、このチュートリアルをお読みください。

このチュートリアルでは、ポート5904 (joevnc) および5905 (janevnc) で実行するようにVNCを構成しています。

ポート転送を使用すると、ローカル クライアント コンピュータのポート 5900 に接続するようにローカル VNC クライアントを設定でき、これはリモート サーバーのポート 5905 にマップされます。 これは janevnc の接続の例ですが、他のクライアントでも同じ手順を簡単に実行できます。

VNCクライアント アプリケーションが起動すると、ローカルホスト上のポート 5900 を指し、ポート転送によりリモート サーバーのポート 5905 に透過的に転送されます。

Note: 接続を安全にするために、毎回 SSH セクションを開始する必要があります。

OS X

Macで、ターミナルを開きます。

次の接続情報を入力し、your_server_ip をリモートサーバーのIPアドレスに置き換えることを確認します:

ssh -L 5900:your_server_ip:5905 janevnc@your_server_ip -N

janevncの UNIXパスワードを入力します。 接続はハングするように見えますが、リモート デスクトップを使用する限り、実行し続けることができます。

VNC Viewer の説明に進みます。

Windows

janevncのVNCセッションを保護するために、ローカルWindowsコンピュータにPuTTYがインストールされているとします。 PuTTY は無料で、ここからダウンロードできます。

janevncのVNCおよびターミナルセッションがまだ閉じられていない場合は、今すぐ閉じます。

PuTTYを起動します。 セッション画面で、サーバーの IP アドレスを指定し、接続にわかりやすい名前を付けていることを確認し、[保存] ボタンをクリックして接続の詳細を保存します。 ホスト名フィールドに username@your_server_ip を指定していることに注意してください。

次に、左側のナビゲーションペインで SSH メニュー項目を展開し、X11 項目を選択します。 これにより、セッションのX11転送のプロパティが表示されます。 X11転送を有効にする」のチェックボックスがオンになっていることを確認します。 これにより、サーバーとクライアントの間を流れるX WindowsトラフィックがSSHによって暗号化されます:

最後に、SSH > Tunnelsを選択します。 Source port]フィールドに[5900]と入力します。 Destinationフィールドには、サーバー名またはIPアドレスを指定し、その後にコロンと目的のユーザーのVNCポート番号を指定します。 この例では、your_server_ip:5905.

を指定しています。あるいは、ポート5902を使用することもできます。 この場合の2は、janevncの表示番号になります(janevncがvncserverコマンドを実行したときに表示されるメッセージを思い出してください)。

「追加」ボタンをクリックすると、「転送ポート」の下にマッピングが追加されます。 ユーザーがポート 5900 で localhost に接続すると、接続は自動的に SSH 経由でリモート サーバーのポート 5905 にトンネリングされることになります。 開く]ボタンをクリックすると、janevncの新しいターミナルセッションが開かれます。 janevncとして適切なUNIXパスワードでログインします:

VNC Viewer

次にVNC Viewerを再度起動します。 今度は、VNC Server address に <^> と入力し、VNC server に暗号化方式を選択させます。

接続ボタンをクリックします。

まだ暗号化していないセッションについての警告ダイアログが表示されますが、今回は安全に無視しても大丈夫でしょう。 VNC Viewer は転送先のポートについて知らないため (これは先ほど開始した SSH セッションで設定されています)、ローカルマシンに接続しようとしているものと見なします。 janevnc の VNC パスワードを入力して、リモートデスクトップにアクセスします。

では、セッションが暗号化されていることをどのようにして知ることができるのでしょうか。 考えてみれば、SSHセッションでポートフォワーディングを設定していたのです。 もしSSHセッションが確立されていなければ、ポートフォワーディングは機能しなかったはずです。 実際、ターミナルウィンドウを閉じて PuTTY セッションからログアウトしてから VNC Viewer だけで接続しようとすると、localhost:5900 への接続試行は以下のエラーメッセージを表示します:

ですから、localhost:5900 接続がうまくいけば、接続は暗号化されていると考えて間違いないでしょう。

接続が常に暗号化されていることを確認するために、VNC を使用するたびに最初に SSH 接続を確立したいことを覚えておいてください。

結論

GUIフロントエンドからCentOS Linux システムにアクセスすると、システム管理をはるかにシンプルにすることができます。 任意のクライアント OS から接続でき、Web ベースのホスティング コントロール パネルに依存する必要はありません。 VNC は、ほとんどのコントロールパネルと比較して、はるかに小さなフットプリントを持っています。

2 人の一般ユーザーが VNC クライアントで接続する方法を示しましたが、深刻な生産環境ではほとんど実用的ではありません。 現実には、ユーザーはサーバーにアクセスするためにカスタマイズされたアプリケーションやブラウザを持つことになります。 また、各ユーザーに対して多数の VNC サービスを実行すると、システム リソースに不必要な負担がかかり、それに伴う固有のリスクは言うまでもありません。

VNC を運用 Linux サーバーにインストールして実行する場合は、管理目的にのみ使用することを強くお勧めします。

コメントを残す

メールアドレスが公開されることはありません。