放置したSSHクライアントを切断されないようにしたい(on FreeBSD)
私は主に開発作業をFreeBSD上で行っています。時には、サーバにログインして作業を行うケースもあり、SSHクライアント(OpenSSH_4.5)でサーバでアクセスします。ちょっと、1~2時間休憩のために、席をはずし、どってくると、接続が切れてることありませんか?
原因の多くはルーター、サーバーで接続コネクションを切断しているからだと思います。
Windows専用、SSHクライアントソフトputtyにはkeepalive機能がついていて、指定した時間に定期的に、nullパケットをログインしているサーバに送信することにより、切断を防げるのですが、penSSHクライアントには標準で同様な機能はついてないようです。
色々と調べましたところ、OpenSSH用のpatchを作成されている方がいたので、利用させてもらうことに。
原因の多くはルーター、サーバーで接続コネクションを切断しているからだと思います。
Windows専用、SSHクライアントソフトputtyにはkeepalive機能がついていて、指定した時間に定期的に、nullパケットをログインしているサーバに送信することにより、切断を防げるのですが、penSSHクライアントには標準で同様な機能はついてないようです。
色々と調べましたところ、OpenSSH用のpatchを作成されている方がいたので、利用させてもらうことに。
- せっかくなので、OpenSSHを最新版(ver4.2 => 4.5)にします
cd /usr/ports/security/openssh-portable - patchのダウンロード
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分間隔でパケットを送るという設定になります) - 標準のSSHクライアントは/usr/bin/ssh にありますので、インストールしたpatch済みのSSHクライアンと置き換えを行います
私はCSHを使っているので、aliasを設定することにより、置き換えを実現しています /etc/csh.cshrcに alias ssh /usr/local/bin/ssh を追加します)
今回パッチを作成して、使わせて頂いた、東北大学のHideaki Gotoさんに感謝です
XML


