VNC は、そのままでは暗号化されていない通信の一つです。 強固なファイアーウォール内限定ならばともかく、インターネットを経由しての通信を行う場合などには、危険性が一気に増大します。 VNC の通信も暗号化してセキュリティを高める方法は無いか、、、そこで登場するのが、SSH ポートフォワーディングです。 SSHポートフォワーディングでVNCを使うには、通常のSSHに加えてポートフォワーディングの設定を行う必要があります。 ここでは、ローカルマシンがWindows の場合とVine Linux の場合にわけてそれぞれ説明します。
下記の例で使用するポートは以下のようになっています。
ポート番号 | 動作 |
22 | SSH の通信ポート |
5901 | ディスプレイ番号が1の場合のVNC ポート |
1234 | ローカルホストでSSH がメール待ち受けるポート(任意のポートを使用可能) |
- ・ クライアントがWindows の場合
-
WindowsでSSHを使用するには、PuttyやTTSSHといったツールを使用すると思われます。 これらのツールには、ポートフォワーディング機能があるので、その設定について説明します。 ここでは、SSHツールとしてPuttyを用いますが、TTSSHでも同様に設定を行えばOKです。 尚、PuttyやTTSSHの基本的な使い方は省略します。
まず、Puttyを起動して、接続先など基本的な情報を入力します。
次に、左側のカテゴリから”トンネル”の項目を選択し、”源ポート”と”送り先”の2つを入力します。 源ポートは、任意のポート番号で大丈夫です。 ここでは、例として1234番ポートに設定しています。 VNCは、ローカルマシンの任意のポートを経由してリモートマシンへと接続されます。 送り先の項目には、リモートマシンのIPアドレスと、VNCのポート番号を:(コロン)で区切って入力します。 このリモートマシンのVNCポート番号は、VNC本来の5900番にVNCサーバーのディスプレイ番号を加えたものでなければなりません。 ここでは、5900+1=5901のポートを指定しています。
入力したならば、”追加”を押して反映させます。 追加したならば、カテゴリの”セッション”の項目へ戻り、設定を保存します。 保存すれば、次回からは設定を読み出す事ができます。
設定がすべて完了したならば、その設定でSSH接続を行います。 リモートマシンへログインしたならば、VNCサーバーのサービスを起動させます。
サーバーサービスを起動したならば、そのままの状態でVNCを起動します。 VNCの接続先ですが、ポートフォワーディングを行うために、ローカルマシンに設定します。 ポート番号は、先ほどPuttyで設定した任意のポート番号(例では1234番)を指定します。
書式は、”localhost::1234”などとなります。 ローカルホストと、ポート番号の間にコロンが入りますが、2つ入る事に注意してください。 書式を間違えると接続できません。ポートフォワーディングによってリモートマシンへ接続されると、パスワードの入力に移ります。
パスワードの入力を終えると、VNCの接続が確立されます。
SSHポートフォワーディングの際は、バックグラウンドで稼動させているSSHの通信を切断すると、VNCも強制終了になります。
これは、VNCの通信がSSHトンネルを経由している事を示しています。
- ・ クライアントがLinux の場合
-
LinuxでSSHポートフォワーディングを使用するには、ターミナルからコマンドを実行します。 ターミナルを起動したならば、次のようにコマンドを入力します。 ここで、ローカルホストポートは任意ですが、後のVNCビューワで指定するポートと同じである必要があります。 ここでは、例として1234番ポートに設定しています。
書式は、ssh [リモートホストのユーザ名]@[リモートホスト] -L [ローカルホストポート]:[リモートホスト]:[リモートホストポート]
あるいは
ssh -L [ローカルホストポート]:[リモートホスト]:[リモートホストポート] [リモートホスト] -l [リモートホストのユーザ名]
です。 リモートホストポートは、VNCの5900番にVNCサーバーのディスプレイ番号を加えたものです。 ここでは、5900+1=5901としています。 例えば、campus というユーザならば次のようになります。
$ ssh -L 1234:192.168.1.22:5901 192.168.1.22 -l campus
リモートマシンに接続したならば、ログインしてVNCサーバーを起動します。 VNCサーバーを起動したならば、このSSH接続はそのままにしておきます。
VNCサーバーを起動したならば、もう一つ別なターミナルを起動します。 新たに起動したターミナルから、VNCビューワを起動します。 ビューワの接続設定には、図のようにローカルホストとポート番号を指定します。 ここでは、ポート番号は先ほどのSSHポートフォワーディングで指定した任意のポート番号と同じものを指定します。 書式は、”localhost::1234”などとなります。 ローカルホストとポート番号の間にコロンが2つ入っている事に注意してください。 書式を間違えると接続できません。
接続先が見つかると、パスワードの入力になります。
パスワードの入力を終えると、VNCの通信が確立されます。