私は主に開発作業をFreeBSD上で行っている。時にはサーバにログインして作業を行うケースもあり、SSHクライアント(OpenSSH_4.5)でサーバでアクセスする。ちょっと1~2時間休憩のために、席をはずしどってくると接続が切れてることはないだろうか? 原因の多くはルーター、サーバーで接続コネクションを切断しているからだと思もわれる。 Windows専用、SSHクライアントソフトputtyにはkeepalive機能がついていて、指定した時間に定期的に、 nullパケットをログインしているサーバに送信することにより、切断を防げるのだが、 OpenSSHクライアントには標準で同様な機能はついてないようだ。 色々と調べてみたところ、OpenSSH用のpatchを作成されている方がいたので、利用させてもらうことにした。そのときの導入方法である
今回の導入するパッチの作成者は、東北大学の後藤 英昭博士である、感謝!
導入方法
OpenSSHを最新版(ver4.2 => 4.5)にする
patchのダウンロード
ダウンロードしたパッチをあて、パケット送信機能を実装する
インストール
パケット送信する間隔を設定ファイルに書き込む
インストールしたpatch済みのSSHクライアンと置き換えを行う
cd /usr/ports/security/openssh-portable
(注意)上記OpenSSHのバージョンはこの記事を書いていた際の最新バージョンである
wget http://www.sc.isc.tohoku.ac.jp/~hgot/sources/
openssh-4.4p1-watchdog.patch.tgz
make patch
make install
インストールが成功すると、/usr/local/bin/ssh にSSHクライアントが置かれる
/etc/ssh/ssh_config に Heartbeat 120
上記設定は2分間隔でパケットを送るという設定になる
CShellを使っているので、aliasを設定し置き換える /etc/csh.cshrcに alias ssh /usr/local/bin/ssh を追加する
標準のSSHクライアントは/usr/bin/ssh にあるので、上書き置き換えでも可能だと思う
関連リンク
FreeBSDにSSHを設定する
FreeBSDにSSHを設定する
XML

