目標
こんな感じでリモートマシンにVNCを使ってログインするのが目標です。SSHでログインしてから手動でVNCサーバを起動する方法は最後に書きます。CentOS 5.3で動作を確認しました。
リモート側の設定
参考:VNC Serverをxinetd経由で立てる方法 [Fedora 10]
- yum install xorg* gnome* gdm xinetd vnc-server nautilus
- /etc/inittab を編集し(
id:5:initdefault:
)、ランレベルを5にする - /etc/servicesに「vnc 5900/tcp」と記述する
- /etc/xinetd.d/vncを作る。内容は以下の通り(解像度は1440×850くらいがいいという環境もあるかもしれない。解像度の設定を複数用意したい場合は、サービスの名前を変えて/etc/servicesに記載する)
service vnc { disable = no nice = 10 flags = REUSE socket_type = stream wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 1024x768 -depth 24 --securitytypes=none log_on_success += DURATION log_on_failure += HOST }
- /etc/gdm/custom.confを以下のように修正する。
[security] DisallowTCP=false AllowRemoteRoot=false [xdmcp] Enable=true [greeter] IncludeAll=false
- 通信を暗号化しなくてよいなら、/etc/sysconfig/iptablesを編集し、5900/tcpを開ける(暗号化する場合はこの作業は不要)
- リモートマシンを再起動する
ローカル側の操作
通信を暗号化しなくてよい場合
TightVNC(Windowsの場合)やChicken of the VNC(Mac OSの場合)のようなVNCクライアントで「リモートマシンのIPアドレス:0」にアクセスする。Mac OSのFinderの「サーバへ接続」で「vnc://リモートマシンのIPアドレス:0/」としても接続できるはずだが、私の環境(Mac OS X 10.6)ではうまくいかなかった。
通信路を暗号化する場合
- SSHでログインする
- 「ssh -2 -N -f -L 5900:localhost:5900 ユーザ名@リモートマシンのIPアドレス」などとして、localhostの5900/tcpをリモートマシンの5900/tcpに接続するように設定する(ローカル側のポートは任意。TeraTermの「SSH 転送」のようなものを使ってもよい)
- TightVNC(Windowsの場合)やChicken of the VNC(Mac OSの場合)のようなVNCクライアントで「localhost:0」にアクセスする。Mac OSのFinderの「サーバへ接続」で「vnc://localhost:0/」としても接続できるはずだが、私の環境(Mac OS X 10.6)ではうまくいかなかった(ポートを5901に変えてもだめだった)。