遠隔マシンの xterm を手元に呼び出す

[戻る]

最近 cygwin 上の X で遠隔マシンの xterm を呼び出して作業するようになりました. やり方は

  1. スタートメニューから Cygwin-X の XWin server を呼び出す
  2. xterm が立ち上がるので xhost + と打つ
  3. TeraTerm で対象マシンに ssh ログインする
  4. そのマシンで xterm -display ... と打つ
といった手順でして, 毎回となると少々面倒です.

ssh で無ければ 以前作った fetchxterm が使えるのですが, 今回はセキュリティ上そうはいきません. putty のソースでもみて ssh による telnet のやり方を調べ上記ソフトを改善するのも手ですが面倒です.

というわけで

#!/usr/bin/sh

export user=User Name
export host=IP Addr

xhost +"$host"
if test $? != "0"; then
 echo ERROR: fetchxterm must run on X-console
 exit
fi

export dspnum=`printenv DISPLAY`
export serv=`ipconfig | grep "IP Address" | awk 'BEGIN{FS=":"}{print $2}' | sed 's/ //g'`

ssh "$user"@"$host" -f xterm -fn 7x14 -sb -display "$serv""$dspnum"
といったファイルを fetchxterm と名づけ, 適当な場所 (c:\cygwin\bin 等) に置くことにしました. 黄色い部分はユーザ名とホストの IP アドレスです. より汎用的に作るには $1, $2 を使って引数で指定するべきでしょうが, 私の場合どうせ接続相手は固定されているので直接書くことにしました. 自分の環境に合わせて書き換えてください. なお, パスワードは実行時に毎回聞かれます.

DHCP に対応するため自分の IP アドレスは ipconfig で調べてきます. 無線 lan 等複数の NIC が搭載されている PC では ipconfig で複数の IP アドレスが出るためうまく動かないでしょう. そのあたりは環境に応じて適当に書き換えてください. アドレス固定なら直接指定してもいいでしょう.


2012.6