連載
» 2001年08月25日 00時00分 UPDATE

ゼロ円でできるXサーバ(4):Windows 2000で動かすXFree86 [設定・運用編] (1/4)

XFree86のインストールが終わったので、いよいよLinuxサーバに接続するための設定を行っていこう。接続の設定とともに、キーボードやフォントの設定を変更して実用度を向上させることも忘れてはならない。

[北浦訓行,@IT]

編注:この記事の公開以降もCygwinは発展を続けており、現状と合わない点も多くなりました。そこで、2003年3月時点の最新事情を踏まえた

真ゼロ円でできるXサーバ[Windows XP編]

を用意しました。こちらをご覧ください。


Cygwin/XFree86の設定

 startxwin.batやstartxwin.shを見るとCygwin/XFree86の設定がよく分かります。Xサーバを起動するのはXWin.exeです。Xサーバを起動するだけなら、次のようにします。

$ XWin -screen 0 800x600x256

 ただし、これだと何も表示されていないウィンドウが現れるだけです。続けて、xtermでbashを起動したり、ウィンドウマネージャ(デフォルトはtwm)を起動する必要があります。具体的には、以下のようなシェルスクリプトを作成し、Cygwinからこれを実行すればいいでしょう。

#! /bin/sh
XWin -screen 0 800x600x256 &
rxvt -e bash &
twm &
2行目 800×600ドット、256色モードでXを起動
3行目 rxvtでbashを起動
4行目 ウィンドウマネージャをtwmに設定

 これで、一応Xでbashが使えるようになります。XWin.exeのオプションは多岐にわたっているので、詳しくはman XWinを見たり、XWin -hを実行してヘルプを参照してください。

Cygwin/XFree86のキーアサインを106キーボードに

 Cygwin/XFree86でbashを起動すると、キー配列が101キーボードになってしまい、「&」や「~」といった記号が思うように入力できなくなります。通常のLinuxでは、kbdconfigなどのツールを使って106キーボードに設定すればいいのですが、Cygwin/XFree86ではXの起動プロセスが異なるため、この方法は使えません。

 Cygwin/XFree86のWebサイトにあるFAQには、非USキーボードに設定する方法が載っています。それによると、xmodmapコマンドでxmodmap.jpを読み込めばいいと書いてあるのですが、xmodmap.jpがどこにも存在しません

 そこで、xmodmap.jpを作成しましょう。作成の方法は簡単です。正常に動作しているLinux(筆者はTurbolinux 6.0 Workstationを使用)で、以下のコマンドを実行するだけです。

$ xmodmap -pke > xmodmap.jp

 できあがったxmodmap.jpをCygwin/XFree86が動作しているPCにコピーして、bashで以下のコマンドを実行すれば106キーボードの配列になります

$ xmodmap /tmp/xmodmap.jp
例では、便宜的にxmodmap.jpを/tmpに置いた

 Xの起動にstartxコマンドを使う場合は、ホームディレクトリに置いたxmodmap.jpを.Xmodmapという名前にリネームすれば自動的に読み込まれます。ただし、環境によってはstartxは動作が不安定になるようです(コラム:「XFree86のコンパイル」参照)。その場合は、シェルスクリプト(例えばstartxwin.sh)の中でxmodmapを実行してください。

#! /bin/sh
export DISPLAY=127.0.0.1:0.0
PATH=/usr/X11R6/bin:$PATH

# Cleanup from last run.
rm -rf /tmp/.X11-unix

XWin -screen 0 800x600x256 &
twm &
xmodmap xmodmap.jp &
xsetroot -solid aquamarine4
xterm -n xterm-1 -j -ls -sb -sl 500 -rightbar -geometry +0+0 -e bash &
exit

 Linuxが動作する環境をお持ちでない方のために、筆者が作成したxmodmap.jpを公開します。本来、xmodmap.jpには変更したいキーだけを定義すればいいはずですが、時間の関係で全キーの配列が定義されたままになっています。

コラム:XFree86のコンパイル

 Cygwin用に用意されたバイナリでstartxの挙動が不安定な場合は、XFree86 4.1.0をソースからコンパイルすることで解決する可能性がある。ただし、ダウンロードやコンパイルには時間がかかるので覚悟が必要だ。

 XFree86をコンパイルする場合は、本家(http://www.xfree86.org/) のFTPサイトにあるソースを利用する(ftp://ftp.xfree86.org/pub/XFree86/4.1.0/source/)。ここにある

  • X410src-1.tgz
  • X410src-2.tgz
  • X410src-3.tgz

の3ファイル(合計約54.1Mbytes)をダウンロードし、/tmpなどで展開する。するとxcというディレクトリができるので、ここに移動して

$ make World
$ make install

を実行する。これでXFree86のインストールは完了だ。ちなみに、make Worldとmake installが終わるのに、Pentium III-766MHzのマシンでも3時間強を要した(編集局)。


Linuxサーバへのアクセス

 さて、いよいよ主目的の1つであるLinuxサーバへのアクセスです。ここでは、192.168.0.15というIPアドレスを持つCygwin/XFree86から、192.168.0.5というIPアドレスを持つLinuxのサーバにアクセスしてみます。

$ xhost 192.168.0.5 ←Xサーバ(Cygwin/XFree86)への接続を許可するホストを登録
192.168.0.5 being added to access control list
$ telnet 192.168.0.5 ←Linuxサーバに接続
Trying 192.168.0.5...
Connected to 192.168.0.5.
Escape character is '^]'.

Vine Linux 2.1.5 (Calon-Segur)
Kernel 2.2.18-0v14.2 on an i686
login: nori
Password:
Last login: Fri Aug 17 11:30:06 from 192.168.0.15
$ export DISPLAY=192.168.0.15:0.0 ←Linuxサーバからの出力(表示)をCygwin/XFree86に送るように設定
$ xterm & ←xtermをバックグラウンドで起動

 Linuxサーバにtelnetでログインして、出力先をCygwin/XFree86に設定します。そしてxtermを起動すると、Linuxサーバ上で起動したxtermの画面がCygwin/XFree86上に表示されます。これで、Linuxサーバの操作をすべてCygwin/XFree86から行えることになります。

画面10 左上のウィンドウがCygwin/XFree86のrxvtで、左下のウィンドウがLinuxサーバのxterm 画面10 左上のウィンドウがCygwin/XFree86のrxvtで、左下のウィンドウがLinuxサーバのxterm(画像をクリックすると拡大表示します)

 残念なことに、現在のCygwin/XFree86はWindowsのIMEから漢字を入力することができません。これについては、今後のバージョンアップに期待するしかなさそうです。

sshで安全にアクセスする

 上では、Cygwin/XFree86からサーバにtelnetでアクセスする方法を紹介しました。LANの内部で使用する分にはtelnetでも構いませんが、外部からアクセスするにはセキュリティの面で心配です。そんなときはsshを利用します。CygwinにはOpenSSHが標準でインストールされているので、そのままsshを使用することができます。

 ここでは、デフォルトの設定で使用できるホストベース認証を行います。ホストベース認証によるログインでもパスワードは暗号化して送信されるので、パスワードが漏えいする心配はありません。

 sshでアクセスするには、上記の「telnet 192.168.0.5」の部分を「ssh 192.168.0.5」に変えるだけです。もちろんサーバ側の設定も必要ですが、最近のディストリビューションであれば最低限の設定はしてあるので、そのままsshでアクセスできます。Red Hat系ならばntsysvコマンドで、Turbolinuxの場合はturboserviceコマンドでsshdが起動しているかどうかを調べ、起動していない場合は起動してください。

 ではsshによる接続の手順です。xhostでホストを登録し、sshでサーバにアクセスします。

$ xhost 192.168.0.5 ←Xサーバ(Cygwin/XFree86)への接続を許可するホストを登録
$ ssh 192.168.0.5 ←sshで192.186.0.5に接続
The authenticity of host '192.168.0.5 (192.168.0.5)' can't be established.
DSA key fingerprint is 5a:69:c2:85:16:1d:44:75:80:ff:92:b3:14:0a:ca:45.
Are you sure you want to continue connecting (yes/no)? yes ←「yes」と入力
Warning: Permanently added '192.168.0.5' (DSA) to the list of known hosts.
noriyu-k@192.168.0.5's password: ←サーバーのパスワードを入力
Last login: Tue Aug 21 17:26:57 2001 from localhost.localdomain
Welcome to Turbolinux.
$ ←サーバーのbashが表示される
$ export DISPLAY=192.168.0.15:0.0 ←Linuxサーバからの出力(表示)をCygwin/XFree86に送るように設定
$ xterm & ←xtermをバックグラウンドで起動

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。