42 ssh の ProxyCommand の利用

これまで研究室のお仕事マシンとWWWサーバーは同じマシンだった。 それが今回分離されて、 お仕事マシンは自宅のマシンからは直接アクセス出来なくなった (WWWサーバーの方は、その目的から当然アクセス出来るようにしてある)。

リモート・ログインとか、rsync を使ったファイルの同期とか、 これまで使ってきたコマンドをどうするか。

実はとても簡単な解決法があることを知った。

お仕事マシンを mylab.mind.meiji.ac.jp (IP 133.26.123.321), WWWサーバーを mygateway.mind.meiji.ac.jp とする。 また mygateway の ssh のポート番号は 1234 とする。
~/.ssh/config に書き加える
Host mylab mylab.mind.meiji.ac.jp 133.26.123.321
        ProxyCommand	ssh -p 1234 -W %h:%p mygateway.mind.meiji.ac.jp 

この意味は、ssh を使って mylab (mylab.mind.meiji.ac.jp, 133.26.123.321) にアクセスするときは、 mygateway.mind.meiji.ac.jp の ssh を使って代理アクセスする、ということ。 やってほしいことが、すっきりかけるのはとても良い。

こんなふうに使える
slogin mylab

scp -p hoge.c mylab:zemi

rsync -avuz mylab:work/ ~/work
(難しいことは考えず、普通に slogin, scp, rsync するだけ。)


設定ファイルは、こう書く方がスマート?
~/.ssh/config に書き加える (改良版)
Host mygateway.mind.meiji.ac.jp
        Port 1234

Host mylab mylab.mind.meiji.ac.jp 133.26.123.321
	ProxyCommand    ssh -W %h:%p mygateway.mind.meiji.ac.jp

大変便利になった。



桂田 祐史