ssh-agent使ってパスフレーズ省略

鍵のペア作って、サーバに公開鍵置いてsshでのパスワード入力省略。これはいつも通り上手く行ったけど、何故かCentOSサーバからSubversionリポジトリのあるサーバへはパスフレーズを求められた。。。Debianからは何も言われないのに。 参考にしたサイトはこれ http://www.snowelm.com/~t/doc/tips/20030625.ja.html

まずは、最初の1回のログインでssh-agentとssh-addするようにして、それを使いまわすと。 ~/.zshenvに下記を追加

ssh-add -l >&/dev/null
if [ $? = 2 ] ; then
    echo -n "ssh-agent: restart...."
    ssh-agent >~/.ssh-agent-info
    source ~/.ssh-agent-info
fi
if ssh-add -l >&/dev/null ; then
    echo "ssh-agent: Identity is already stored."
else
    ssh-add $HOME/.ssh/id_dsa
fi

ここまでで終わってもよかったんだけど、完全にログアウトしたときにssh-agent生かしたままなのがちょと気持ち悪い。というわけで ~/.zsh/.zlogoutに下記を追加

if [ `who | grep hiratch | wc -l` = 1 ]; then
    eval `ssh-agent -k`
fi

ちなみにhiratchなんてアカウント名は使ってないw これで無事にそのマシンにログインしている自分のアカウントが全部ログアウトしたらssh-agent殺してくれる