XFree86のインストールが終わったので、いよいよLinuxサーバに接続するための設定を行っていこう。接続の設定とともに、キーボードやフォントの設定を変更して実用度を向上させることも忘れてはならない。
編注:この記事の公開以降もCygwinは発展を続けており、現状と合わない点も多くなりました。そこで、2003年3月時点の最新事情を踏まえた
を用意しました。こちらをご覧ください。
startxwin.batやstartxwin.shを見るとCygwin/XFree86の設定がよく分かります。Xサーバを起動するのはXWin.exeです。Xサーバを起動するだけなら、次のようにします。
$ XWin -screen 0 800x600x256 |
ただし、これだと何も表示されていないウィンドウが現れるだけです。続けて、xtermでbashを起動したり、ウィンドウマネージャ(デフォルトはtwm)を起動する必要があります。具体的には、以下のようなシェルスクリプトを作成し、Cygwinからこれを実行すればいいでしょう。
#! /bin/sh |
2行目 800×600ドット、256色モードでXを起動 3行目 rxvtでbashを起動 4行目 ウィンドウマネージャをtwmに設定 |
これで、一応Xでbashが使えるようになります。XWin.exeのオプションは多岐にわたっているので、詳しくはman XWinを見たり、XWin -hを実行してヘルプを参照してください。
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 |
Linuxが動作する環境をお持ちでない方のために、筆者が作成したxmodmap.jpを公開します。本来、xmodmap.jpには変更したいキーだけを定義すればいいはずですが、時間の関係で全キーの配列が定義されたままになっています。
Cygwin用に用意されたバイナリでstartxの挙動が不安定な場合は、XFree86 4.1.0をソースからコンパイルすることで解決する可能性がある。ただし、ダウンロードやコンパイルには時間がかかるので覚悟が必要だ。
XFree86をコンパイルする場合は、本家(http://www.xfree86.org/) のFTPサイトにあるソースを利用する(ftp://ftp.xfree86.org/pub/XFree86/4.1.0/source/)。ここにある
の3ファイル(合計約54.1Mbytes)をダウンロードし、/tmpなどで展開する。するとxcというディレクトリができるので、ここに移動して
$ make World $ make install |
を実行する。これでXFree86のインストールは完了だ。ちなみに、make Worldとmake installが終わるのに、Pentium III-766MHzのマシンでも3時間強を要した(編集局)。
さて、いよいよ主目的の1つであるLinuxサーバへのアクセスです。ここでは、192.168.0.15というIPアドレスを持つCygwin/XFree86から、192.168.0.5というIPアドレスを持つLinuxのサーバにアクセスしてみます。
$ xhost 192.168.0.5 ←Xサーバ(Cygwin/XFree86)への接続を許可するホストを登録 |
Linuxサーバにtelnetでログインして、出力先をCygwin/XFree86に設定します。そしてxtermを起動すると、Linuxサーバ上で起動したxtermの画面がCygwin/XFree86上に表示されます。これで、Linuxサーバの操作をすべてCygwin/XFree86から行えることになります。
残念なことに、現在のCygwin/XFree86はWindowsのIMEから漢字を入力することができません。これについては、今後のバージョンアップに期待するしかなさそうです。
上では、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)への接続を許可するホストを登録 |
Copyright © ITmedia, Inc. All Rights Reserved.