Cygwin で X over SSH
October 23, 2010 – 10:57 am日常的な作業はWindowsマシン上で行うことが多い。Linuxサーバ(OS: CentOS)上で利用可能なGUIツールを、Windowsマシン上で操作できれば都合が良いと思っていた。これを実現するため、Cygwinを用いてX over SSHを試してみることにした。なんとかWindowsマシン上でLinuxサーバのGUIツールを操作することができた。一連の手続きをメモしておいた。
Cygwinのインストール: Windowsマシン(Windows-7 (32bit))上へのCygwinのダウンロード/インストールはred hatサイト(http://www.redhat.com/services/custom/cygwin/)から行うことができる。
まず、このRed Hatサイトで提供されている「Red Hat Cygwin official installation utility」(rhsetup.exe)をダウンロード、実行する。
rhsetup.exe を実行すると次のようなインストール用GUIの初期画面が現れる:
GUIの指示に従ってインストール作業を進めてゆくと、最後(8ステップ目あたり)にインストール対象とするパッケージの選択画面(Cygwin Setup – Select Package)が現れる。ここで[進む]ボタンを押下すると、あらかじめ対象とされている(表示ではdefaultの)パッケージのインストールが開始される。
default状態にないパッケージについては、パッケージ選択画面上でインストール対象として指定をし、[進む]ボタンを押下することによりインストールが開始される。
なお、X11のパッケージはdefaultではインストール対象とされていないので、(Xを用いる場合には)これをインストール対象としておく必要がある。
Cygwin上のパッケージのインストール/アンインストールは、以降、このrhsetup.exeで行うことができる。
SSHによるリモートホストへの接続: Cygwinのインストールが完了したところで、SSHによるリモートホストへの接続に必要な設定をする。
Windowsマシンの[スタート] → [すべてのプログラム] → [Cygwin] → [Red Hat Cygwin Bash Shell]でCygwinターミナルが立ち上がる。ここで .bashrc を開き、Cygwin Bash Shell起動時にDISPLAY変数が設定されるように次の行を付け加える:
export DISPLAY=”localhost:0.0”
Cygwinターミナルを立ち上げなおすと、上記の環境変数DISPLAYがセットされる。
次に、SSHの設定ファイル /etc/ssh_config に以下を付け加える(アクティブにする):
Host * ForwardX11 yes
ここで、Windowsマシンの[スタート] → [すべてのプログラム] → [Cygwin-X] → [Xwin Server] でxサーバを立ち上げる。デフォルトでは、RootWindowがhide状態になっており、Xサーバの立ち上げでは、単にツールバー上にXwinサーバのアイコンが表示されるのみである。
Cygwinターミナル上でコマンド xhost により接続するリモートホスト名(IPアドレス)からのアクセスを受け付ける状態とする。リモートのIPアドレスを192.168.11.101 の場合、以下:
$ xhost +192.168.11.101 192.168.11.101 being added to access control list
sshによりリモートホストにアクセスする:
$ ssh -l useraccount 192.168.11.101 useraccount@192.168.11.101's password: Warning: untrusted X11 forwarding setup failed: xauth key data not generated Warning: No xauth data; using fake authentication data for X11 forading. Last login: Fri Oct 22 16:55:34 2010 from 192.168.11.102 [useraccount@ServerMachine ~]$
これでCygwin ターミナル上は192.168.11.101(ServerMachine)のuseraccountのセッションに移行した。このターミナル上から192.168.11.101上のアプリケーションが起動可能となる。一例として「システム・モニタ」を立ち上げてみよう。
$ gnom-system-monitor & [1] 4572
下図は「システム・モニタ」を立ち上げた状態でのWindowsマシン上のディスプレィ画面のスナップショットを示している。
この例にみられるように、ローカルホスト上の任意のアプリについてGUIを通じた操作がWindowsマシン上で可能になることが理解されただろう。
インターネット(WAN)を経由した接続: 上記した例では、X端末として利用したWindowsマシンとサーバマシンが同一LAN上で動作している。異なるLAN上にある場合についても、SSHでの(Port 22を通じた)接続が許される環境が整えられている場合には、基本的には、LANの場合と同様な操作が可能になる。
WAN上でこうした利用を行う場合、データの転送の遅延などがあること、セキュリティ上の配慮の必要があることなどを、十分考慮した活用が必要になる。
1 Trackback(s)