autossh

常時ssh tunnelを愛用している。自宅から会社へも張りっぱなし。
会社にいるときも、いったん外を経由して会社のメールサーバにssh tunnelしてアクセスしている。
これなら localhost のあのポートこのポートに、あのサーバのあのサービス、このサーバのこのサービスがいつも顔を出しているわけで、扱いやすい。どこにいようとも。

なんだけど、環境がかわったときやsshが切れたときの管理が面倒くさい。ツールはいろいろあるものの、どれもイマイチで、生活には使っていなかった。

autosshがなかなかいいことに気付いた。いままで

ssh -C foo.com -L 10143:localhost:143 ping -i 30 localhost &

とかしていたなら、

autossh -M 10002 -f -C foo.com -L 10143:localhost:143 ping -i 30 localhost

とすればよい。autossh は ssh を子として持っていて、切れたり流れなくなったらssh tunnelを張り直す。
また killall -USR1 autossh すれば全部明示的に張り直しだ。ここも使いやすい。

macportsにもある。sudo port install autosshでok.

http://www.harding.motd.ca/autossh