解像度や通信速度を考えると、どうあっても実用向きではない気がしますが、唐突にやってみたくなったので試してみることにしました。最近はWindowsからFedoraへVNCでログインすることが多くなってきたので、その設定をしたときに流れで、みたいな感じ。ただ今回は外部からの接続も試してみたいから、ついこの間OSをVine 3.2に入れ替えたマシンがあるので、それを使ってみる。SSHサーバ構築済み、vncserver構築済みが前提。要点は
- W-ZERO3からVine 3.2のマシンへVNCでログインする。
- W-ZERO3で動作するVNC viewerとして.NET VNC Viewerを利用する。
- 外部からアクセスする場合はSSHのポート転送を利用する。
- SSHへのログインは公開鍵認証を利用する。
PortForwarderの設定
SSHのポート転送を利用して、SSHのポートをVNCに利用する590x,580xへ転送するように設定ファイルを記述します。
Host おなまえ
HostName サーバのホスト名
User ユーザ名
LocalForward 5901 接続先ローカルIP:5901
LocalForward 5801 接続先ローカルIP:5801
これはディスプレイ番号が1の場合の例。VNC viewerで接続する際のポートは5901ですが、ブラウザからhttp://localhost:5801/のようなアドレスでアクセス出来るように5801ポートも指定しています。‥‥これ、windows用のPortForwarderの設定ファイルをそのまま流用したのでこんな記述ですが、PocketPC用ではブラウザからのアクセスは試していないので5801の方は書かなくてもいいかも。
具体的には
Host unko
HostName hogehoge.com
User fuga
LocalForward 5901 192.168.0.100:5901
LocalForward 5801 192.168.0.100:5801
ホスト名unkoのサーバhogehoge.comへfugaさんがログインする際の設定です。このファイルはどんな名前でも構いません。例えばhoge.txtなどでも。なお、公開鍵認証を利用する場合は秘密鍵をこの設定ファイルと同じフォルダに置いておく必要があります。
しかしPocketPC版PortForwarderではSSH2の公開鍵認証が利用できないため、別途サーバ側でrsa1の鍵を生成する必要があります。
$ ssh-keygen -t rsa1
で鍵の束(のようなもの)のauthorized_keysへ入れて、元の公開鍵identity.pubは削除しておきます。秘密鍵identityは前述のとおりPortForwarderの設定ファイルと同じフォルダへ移します。当然ですが元のファイルは削除しておきます。
$ cat identity.pub >> authorized_keys
このへんは説明不要でしょうか。ああ、sshd_configでSSH2でのアクセスのみ許可してあるような場合は設定の変更が必要かもしれません。
# vi /etc/ssh/sshd_config
#Protocol 2
Protocolの行をコメントアウト。
vncserverの設定を見直しておく
vncserver起動時に読み込まれる設定ファイルは~/.vnc/xstartupですが、普段他のクライアントマシンから利用している場合はそのままでも問題ないでしょうけれど、初めての起動だとそのままではウインドウマネージャがtwmだったり日本語入力出来なかったりします。とりあえず私のxstartupを。
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xset +fp /usr/X11R6/lib/X11/fonts/japanese
#export LANG XMODIFIERS="@im=kinput2"
#kinput2 -canna -cannaserver unix &
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
scim -d &
export XMODIFIERS="@im=SCIM"
exec gnome-session &
コメントアウトしている行はkinput2 + cannaの名残です。VNCでcannaだとどうしても変換候補ウインドウの中が文字化けしてしまい、いろいろ試したのですが直すことが出来なかったので諦めてFedoraでも利用しているscim-anthyをインストールしました。Vine 3.2でのscim-anthyのインストールは
# apt-get install scim-anthy
でOKでした。windowsのVNC viewerからは、このxstartupでも問題なく使えています。
scim -dを実行する必要はないんじゃないかと思うのですが、これを加えておかないとOperaで日本語入力出来なかったので。
PortForwarderの起動
PortForwarder HomeからPocket PC ARM版のPortForwarderをダウンロードしてW-ZERO3内のテキトーな場所に展開しておきます。んでPortForwarder.exeを起動します。
Config fileへ先ほど書いた設定ファイルを指定し、Hostの項には設定ファイルに記述したHostNameと同じものを入力します。
で、Connect!
identityが設定ファイルと同じフォルダにないと、ここでエラーが出ます。あればパスフレーズの入力を要求されます。
VNC viewerの起動
他にもいくつかあるようですが、今回は.NET VNC Viewerを利用しました。windowsでも動作しますがとても重いです。選択を誤ったような気がしますがとりあえず気にしない。
上記ページからバイナリのアーカイブをダウンロードしてきてW-ZERO3内のテキトーなところに展開してvncviewer.exeを起動。サーバはlocalhostを指定します。ディスプレイ番号が1ならば、localhost:1のように記述します。Passwordはvncserverのパスワードを入力。するとこんな感じ。
狭いし色も少ないですがとりあえず接続できました。これは外部の無線LANから接続ですが、わりと重いです。
Operaでscim-anthyの日本語入力を試してみた。ちゃんと入力できてます。
vncserverの解像度設定が1024x768だから仕方ないのですが、横も縦もスクロールバーが表示されてしまい、速度以前に使い勝手が悪いです。なので試しに/usr/bin/vncserverを編集して
$geometry = "640x480";
に、してみました。これでW-ZERO3のVNC viewerをフルスクリーンにすれば、見た目は良くなるかも。
ついでにPixel sizeを変更。このスクリーンショットだと本当にW-ZERO3からアクセスしてるかわかりませんがW-ZERO3からです。一応使えないことはない、かもれない、ような気がする。ってくらいには使えます。あ、被fav増えた。
最後に
ローカルでも無線LAN接続でログインしてみたのですが、重くて実用に耐えません。2xパケットで接続したら問題外の速度でした。そこそこの回線速度とマシンパワーがないと辛いですね。とりあえず、画面を見せて「俺のZERO3はGNOMEが入ってるんだぜ!」とか嘘吐くのに利用するくらいしか用途はありません。
結論は「外からいじるならSSHだけで充分だよ」ということで。