ssh-agent

Mac OS Xsshで一度ログインすると、再度パスフレーズが聞かれないが、ubuntu serverから他へsshログインするときは毎回聞かれる。面倒だなあと思って、ググった結果、ssh-agentを使えば良いことがわかった。以下のサイトを参考にssh-agentを使ってみた。
http://qiita.com/isaoshimizu/items/84ac5a0b1d42b9d355cf
大変便利。Mac OS Xではターミナルよりも親のプロセスでssh-agentが起動しており、知らぬ間にssh-addしてくれていた模様。ほかのマシンからMac OS Xにログインすると、ssh-agentが効かない。

eval `ssh-agent`

ssh-agentを起動する。/tmp/ssh-xxxxxxxxxxxxx/agent.xxxxxのようなファイルが作成され、$SSH_AUTH_SOCKにファイル名が書き込まれる。

ln -s $SSH_AUTH_SOCK ~/.ssh_auth_sock
echo $SSH_AGENT_PID > ~/.ssh_agent_pid

のようにして、固定している場所にシンボリックリンクを張る。同時に、ssh-agentのpidも保管しておく。

ssh-add -l

で、保管されている鍵の確認。

ssh-add ~/.ssh/id_rsa

で、鍵の登録。

$SSH_AGENT_PIDが設定されている場合、

ssh-agent -k

で終了する。シンボリックリンクとpidの記録ファイルを作った場合は、

rm ~/.ssh_auth_sock ~/.ssh_agent_pid

として片付けておく。

.zshenvに環境変数を読み込むように設定する。

export SSH_AUTH_SOCK=~/.ssh_auth_sock