VNCによるリモートログインまとめ

Ubuntu10.10でのVNCによるリモートログインの方法。
インストール時のGDMではXDMCP接続ができないので、まずGDMのバージョンアップをします。
https://launchpad.net/ubuntu/+source/gdm/
で最新版のgdmをダウンロードし、Ubuntuソフトウェアセンターからアップグレードする。今回は2.32.0-0ubuntu3を使いました。
GDMでXDMCPを有効にするため、custom.confを設定する。custom.confがない場合は新規に作成します。

$sudo gedit /etc/gdm/custom.conf

custom.confに以下を付け加える。

[xdmcp]
Enable=true

編集したら保存し、gdmを再起動する。再起動するには Ctrl-Alt-F1 でシェルプロンプトに移り、

$sudo /etc/init.d/gdm restart

で再起動する。再起動するとGUI画面に移るので、Ctrl-Alt-F1でシェルプロンプトに戻り、

$exit

でログアウトする。ログアウトしたら Ctrl-Alt-F7で X グラフィックのGUI画面に戻る。
gdmの再起動がうまくいできないならばPC自体を再起動すればよい。

次に、vnc4serverとvnc4serverをアクセスがある度に起動させるためのxinetdをインストールする。

sudo apt-get install vnc4server xinetd

vnc4serverでのパスワードファイルを作る。パスワードは短すぎると怒られます。

sudo vncpasswd /etc/vncpasswd
sudo chown nobody /etc/vncpasswd
sudo chgrp nogroup /etc/vncpasswd

xinetdの設定ファイルの記述。

sudo gedit /etc/xinetd.d/xvnc

今回は下記のようにする。

service Xvnc
{
type = UNLISTED
disable = no
socket_type = stream
protocol = tcp
wait = yes
user = nobody
group = tty
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -geometry 800x600 -depth 24 -once -DisconnectClients=0 -desktop vboxpc -NeverShared PasswordFile=/etc/vncpasswd
port = 5900
}

xinitdを再起動する。

$sudo /etc/init.d/xinetd restart

ここまででVNCクライアントからの接続はできるようになるがショートカットキーの初期設定がおかしく?、d キーが全てのウィンドウを隠すショートカットに当てられているので直します。(直さないと小文字のdが押せない状態です。)
VNCでログイン後、上部のパネル(Windowsでのタスクバー)から
[システム]⇒[設定]⇒[キーボードショートカット]
でキーボードショートカットウィンドウを出し、スクロールして「すべての通常ウィンドウを隠してデスクトップにフォーカスを移す」の項目を探す。
ショートカットキーがd キーになっているならば選択し、バックスペースで無効にする。
ログアウト(VNCクライアントの切断ではない)をし、再度ログインすればショートカットキーの変更が適応される。
日本語入力の切り替えは、半角/全角キーが使えないので代用手段として標準設定ならばCtrl+スペースで切り替えができます。