ssh-agent
Mac OS Xでsshで一度ログインすると、再度パスフレーズが聞かれないが、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