blog


あくなき追求、深追いこそ永遠の目標

放置したSSHクライアントを切断されないようにしたい(on FreeBSD) 

FreeBSD

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

今回パッチを作成して、使わせて頂いた、東北大学のHideaki Gotoさんに感謝です

 
投稿日:2007/03/02 | カテゴリ:FreeBSD | コメント:(0)