2008年9月16日火曜日

CygwinでX端末っぽく、XアプリケーションをWindows上で

普段Linuxでサーバを作るとき、 色々と面倒くさいので X-Winow System はインストールしない。
でもちょっと使いたいときがある。例えば Xen の管理画面とか。
 

そこで、X上で動作するアプリケーションは Xサーバさえあれば動くんだろうということから、普段使うWindowsの端末にXサーバ立てておけばいいんじゃないのというお話。
Cygwin と Openssh を使います。
 


X端末ってサーバ機能なのに端末っていうからややこしい。。。
 
 

下準備、使われる側のssh設定、X11Forwardingを有効にする


外のXサーバ使ってよいという設定を Xアプリケーションがインストールされている側 で行う。
/etc/ssh/sshd_config (※インストール先は各自適当に)
X11Forwarding yes
これでOK、SSHはリロードしておく。
 
 

Cygwinを入れておく


ほとんどデフォルトでいいので割愛。
たださっき確認したら、デフォルトだと OpenSSHとOpenSSLが外れていたのでそこだけ注意。
 
 

CygwinのターミナルからXオプションでSSH接続


あとはCygwinのXを起動して、X(ラージエックス) でssh接続。
※もちろんLinux同士でもOKなので、XありLinux → XなしLinuxでも同じことが可能。
[caption id="attachment_767" align="alignnone" width="492" caption="画像:CygwinのXコンソールから 「-X」 でSSH"]画像:CygwinのXコンソールから" -X" でSSH[/caption]
 

これだけで、接続先のXアプリケーションを起動したら、Xサーバのデフォルトディスプレイとして Cygwin を使ってくれる。
 
 

Xアプリケーションのサンプル


サンプルとして、FireFoxとXENのGUI管理コンソールを手元に引っ張ってみる。
Windowsと分かるようにデスクトップ丸ごとアップ。
 

[caption id="attachment_774" align="alignnone" width="300" caption="画像:リモート側のFireFoxをローカルに"]画像:リモート側のFireFoxをローカルに[/caption]
「名前をつけて保存」、とかするとリモート側のファイルシステムが出てくる。CPUやらのリソースもリモート持ち。
 

[caption id="attachment_772" align="alignnone" width="300" caption="画像:リモート側のXEN管理画面をローカルに"]画像:リモート側のXEN管理画面をローカルに[/caption]
 

画像縮小しすぎたかもしれないけどまあ分かりますよね?
背景がメモ帳なのはデスクトップが汚いからです・・