SSH X11 Forwardingで手元に呼び寄せる

sshにはX11 Forwardingというオプションがあって、これを使うと比較的安全にリモートのアプリケーションを手元で実行できる。いや実行してるのはリモート側だけど。

localhost $ ssh -X remotehost

といった感じで-XをつけてやるとX11 Forwardingが有効になる。
この状態でGUIアプリを起動すると、remotehostで実行されたアプリがクライアントに表示される。

remotehost $ gedit

VNCXDMCPよりお手軽な感じ。でも用途が思いつかない。
たぶんCygwinでもできる。



画像はローカルのgeditとリモートのgeditを並べてみたもの。
ローカルがUbuntuのGlossyに手を入れたもので、リモートはCentOSのデフォルトかな。
ウィンドウの枠はローカルのものになるっぽいけど、ツールバーのデザインが違う点に注目。

日本語入力の設定

リモートで実行したアプリで日本語入力できない場合は、リモート側で以下の環境変数を設定するとよいらしい。
お使いのIMに合わせて設定するべし。

export XMODIFIERS="@im=SCIM"    # scim
export XMODIFIERS="@im=kinput2" # kinput2
export XMODIFIERS="@im=htt"     # iiim
export XMODIFIERS="@im=uim"     # uim

自分はATOK X3なのでiiimを設定したら正常に入力できるようになった。