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. 1 Trackback(s)

  2. Oct 28, 2011: 自宅サーバー構築・覚書きリスト | Yama's Memorandum

Post a Comment