Macのkeychain連携ssh-agentは使いたくない

MacOS X 10.5でsshを使うとkeychainと連携したssh-agentが起動します。よくできていますが、ダイアログの表示が遅くて気にいらないとか、あえて使いたくない環境があったりもします(わたしがそうなんですが)。そんなときには環境変数のSSH_AUTH_SOCKをはずしておくといいです。

bashでは次のようになります。

unset SSH_AUTH_SOCK

それはそれとしてssh-agentは便利です。特に多段接続をするときには各中継サーバ接続ごとにパスフレーズを入力する必要がないのでssh/scp/sshfsのあらゆるところでシームレスな操作が可能になります。ということでkeychainは使いたくないがssh-agentは使いたいとなるのですが、opensshのssh-agentを使う場合にはちょっと工夫が必要です。ターミナルで複数のタブを開いていると、通常のssh-agentではSSH_AUTH_SOCKが引き継がれません。もちろんscreenでも同じで、とりあえずログイン後はパスフレーズの入力は一度きりにしたいです。
そんなときには.bashrcに次のようにすればいいかと。

if [ -z $SSH_AUTH_SOCK ] ;then
  if [ -e $HOME/.ssh-sock ] ; then
    export SSH_AUTH_SOCK=$HOME/.ssh-sock
  else
    eval `ssh-agent -a $HOME/.ssh-sock`
    ssh-add
  fi
fi

ちなみにmacports 1.6のopensshにはkeychain連携のssh-agentになるようにパッチ(DVG-5142987_launchd_DISPLAY_for_X11.patch)があてられています。

それはそれとしてLeopardのTerminal.appはタブ機能が実装されて、とても使いやすいです。