はじめに

皆様こんばんは。部室にはこたつが導入されてそろそろ1ヶ月が経過し快適なので、 そろそろ下宿にもこたつを出そうかと検討しています、KMCの日曜大工 possumです。

この記事はKMCアドベントカレンダー2013の11日目の記事で、 前回はうださんによる「X11 forwarding」でした。 また、この記事はKMCアドベントカレンダー2013のサブプロジェクトであるSSHアドベントカレンダー2013の記事でもあります。

今回はautosshというツールを紹介します。

autossh

autossh1 はssh(OpenSSH)のセッションを監視し、 セッションが切れたりプロセスが落ちたりした時に自動でsshをリスタートするツールです。 一昨日ののな君の記事でトンネルの話がありましたが、このトンネルを維持するのに僕は使っています。

対応している環境はLinuxやOS X、OpenBSDなどです。 インストールについては公式サイトからソースを落としてビルドするか、 APTを使ってもインストールできます。 僕の使っている環境はUbuntu 12.04 LTSで、APTでインストールしました。

使い方は簡単で、通常sshで

possum@local:~$ ssh -R 1211:localhost:22 possum@remote

と打っているところを、

possum@local:~$ autossh -R 1211:localhost:22 possum@remote

このようにsshをautosshに置き換えるだけです。 オプションや引数は(一部を除いて)そのままsshに引き渡されます。

これだけでトンネルを維持し続けてくれます。 但し、自動でログインし直すには公開鍵認証の設定をしておく必要があります。

autosshは監視のために使うトンネルを2本別に掘ります。 echoとecho backのために使われているようです。 psコマンドなどでプロセスを見るとその様子がわかります。 また、監視用のトンネルで使うポートを指定することもできます。 詳しくはREADMEやmanを参照してください。

おわりに

これで今回の僕の記事はおしまいです。 crontabに@reboot指定をして起動時に勝手にトンネルを掘るようにしているので快適に大脱走2 できます。

Windowsでも勝手にIRC botにつなぎに行くトンネルを掘ってくれるツールが欲しかったので、 僕はBitvise SSH Client3 を使っています。 OS起動時に自動で掘りに行く設定はserviceとして登録するのが正統であるようですが、 コマンドラインからも起動できるツールなのでバッチファイルを書いてスタートアップに登録しています。

cd C:\Program Files (x86)\Bitvise SSH Client\
start BvSsh.exe -profile=C:\Users\possum\kmc\irc.bscp -loginOnStartup
exit

次回はのんさんがssh_configのお話をしてくれます。 それではおやすみなさい。

注釈

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

  2. 1963年公開のアメリカ映画。ジェン・スタージェス監督。 

  3. http://www.bitvise.com/tunnelier