VNC@主に外部からの接続

拙生は外部からサーバーへ接続するときは、ubuntu端末から
SSHで接続し、コマンドでの操作で十分なのですが、
GUI操作のほうが楽チンできるときもあるので、一応
デスクトップ環境もインストールしてあります。
ただしサーバーにはモニターは常時接続されていませんので、
VNCを使って他のパソでディスクトップ画面を表示させます。
また慣れないサーバー管理者の方などははGUIの環境が
必要な場合がありますね。

そのへんについては昨年5月のエントリで
詳細を書きました。

   ⇒ こちら

このポストの後で質問を受けたものがいくつかあるので、
言葉足らず解消のための追記的なポストとなります。

VNCでのリモートディスクトップではセキュリティ上
VPNかSSHのトンネリングを使うことが必須でありますが
以降SSHについての追記です。

公開鍵認証
通信の暗号化としてはVPNでもSSHでもOKですが、
不正アクセスに関してはSSHのパスワードによるログインでは
セキュリティリスクが大きすぎます。
公開鍵認証を推奨・・・いえ、必須と言い切っておきます。

SSHのログイン
拙生の環境はサーバー同士で交互に自動でバックアップを
root権限で取り合うために、rootでログインできる設定ですが、
SSHコネクションをrootで確立しておけば、VNCのユーザーは
別でも構いません。
通信経路接を確保するための接続なので、わざわざVNCと
同じユーザー名でSSHログインできるように細工する必要は
ないということです。
(もちろんやっていても接続はOKです。)

SSHポートフォワード
その際サーバー設定で、ポートフォワードが許可されて
いなくてはなりません。
CentOSのsshd_configを覗くと

#AllowTcpForwarding yes

のようにコメント行になっています。
#以降の記述は無視されるのですが、慣例として
ディフォルトでの振舞いを#以降としています。
つまりなにも書いていなくても、ディフォルトで
ポートフォワードは許可されているということです。
なにかの都合で AllowTcpForwarding no に
なっている場合はyesにするかコメントにしておきます。

 ディフォルトの設定と異なる設定を施す時は
 ディフォルトの設定をコメント行として残しておくと
 後の再設定時に楽ちんです。

  #AllowTcpForwarding yes 
  AllowTcpForwarding no

 例えば
 ポートフォワード許可しない設定にしてみたが、元に戻して
 許可するようにしたければ、下のnoの行をコメントとします。
 拙生はyesがディフォルト設定だと分かるように、##と付して
 コメント行にしておきます。
 設定を何度も変更しながら振舞いを確かめるときなどは
いちいち書いたり消したりせずに#を賢く使います。(笑

WindowsOSの場合
クライアントがWindowsOSの場合、PuTTYや
TTSSH(TeraTerm)などSSHクライアントの
SSH転送機能を使いますが、その場合VNC
クライアントからの接続先は自分自身となります。
【localhost:ディスプレイナンバー】
または
【127.0.0.1:ディスプレイナンバー】

軽快なVNC
TightVNCーJAVAなど、比較的転送速度が早い
と言われていますが、試したところ確かに
改善はされましたが、劇的に早くなることは
ありませんでした。

JAVA系にありがちなのはマウスのポインターが
2つ表示されるものがあります。
ubuntuで使っているremminaのように、ポインタが
シームレスに動かないので気に入りませぬ。

ちょっと別のお話
対象はサーバー機なので、SSHサーバーは導入済みですが、
例えばローカル内のマシーンAのディスクトップ画面を
接続したマシーンBで表示させるかつローカル内でも
暗号化を必要とする場合は、上述の方法ではマシーンAに
SSHサーバーが必要となります。
ローカル内IPアドレスがDHCPで割り振られる場合、
接続の際にアドレスが変更されたことを
クライアント側で把握する必要があります。

このような場合は逆方向SSHポート転送があります。
つまりVNCクライアントクライアント側にSSHサーバーを
置いておき、VNCサーバー側からSSHコネクションを
確立させるというものです。
LANのみならず、外部からのインターネットでの接続でも
ファイヤウォール(FW)やNAT内にあるVNCサーバーへ
問題なく接続可能です。

大掛かりなシステムでは別途にSSHサーバーを設けて
リレーする方法があり、双方にFWやNATが噛んでいても
OKなので、VNCのクライアント・サーバー役割が交代できる
システムも可能になります。

よく尋ねられること
WindowsOSのRDT(リモートディスクトップ)と
同じなの?

細かいところでいろいろ違いがありますが
操作されるほうがログオフになることでしょう。
VNCはどちらからも操作できますが、それでは
まずい場合にロックを掛けることができます。

他には双方の解像度の違う接続時において、
RDTでは設定が必要ですが、VNCは自動認識します。
(極端な設定では表示しない時もある。)
またRTDの場合WIndowsのエディション違いで
操作ができない事例があるようです。

ただしRTDに関してはお試し程度で、実用と
していないため、そう詳しくはありません。
もしかしたら上述の件はすでに改善されている
かもしれません。

2月からドサ周りで、日帰りの時でも遅くなるので
連続エントリは途切れるか、ツイット的な短い
ポストになる予定。(笑

HOME

おすすめ