SSHKeychainを使ってパスフレーズ入力なしでsshを使う(MacOS X)

svn+sshを使ってリモートのレポジトリを使うときに、いちいちパスフレーズを入力するのが面倒だったので、MacOS Xssh-agentが使えないかどうか調べてみた。

> ssh-agent zsh

とかしてssh-agent経由でshellを実行すれば使えるけど、2つめのshellはどーすんだとか、コマンドライン以外から起動したssh client(あるかどうかは知らない)はどーすんだとか。
Xなら、ログインするときにopenssh-askpassを使ってパスフレーズの入力と環境変数のセットをすればいいけど、MacOS Xだとどうなるんだろう?
とさまよっていたら、よさげなものを発見。

どういうものかというと、keychainにパスフレーズを保存しつつ、グローバル環境変数をさわってssh-agent関係の環境変数をセットしてくれる。ログイン時に起動するようにしておけば、一回パスフレーズを入力するだけで、以後のsshは全部パスフレーズなしでOK。ステキ。
さて、気になる使い方。まずはSSHKeychainのdmgファイルをダウンロードして展開、中のSSHKeychainをアプリケーションフォルダにコピーする。
起動すると、Dockとmenu barに表示される。まずは環境設定を開く。
http://static.flickr.com/121/300922299_882e1c416b.jpg
SSHキー」タブを選択して「新規」ボタンを押すと、SSHキーの生成ができる。なれてる人は、コマンドラインからssh-keygenを実行してSSHキーを生成しておいてから、「+」ボタンで追加してもいいかも。
http://static.flickr.com/108/300922302_089d65cc03.jpg
次はSSHKeychainにグローバル環境変数をセットさせる設定をする。「環境変数」タブを選択して、「グローバル環境変数を管理」をチェックする。
http://static.flickr.com/106/300908494_5d16618a45.jpg
ここで一度ログアウトしてからログインしなおして、SSHKeychainをもう一度起動する。最後に、SSHKeychainのメニューから、「エージェント>すべてのキーを追加」でパスフレーズを入力する。
http://static.flickr.com/112/300908496_53a0e981c9.jpg
パスフレーズをキーチェーンに登録」をチェックしておけば、次回からパスフレーズの入力すら不要。
あとはターミナルを開いてsshすれば、SSHキーを登録しておいたホストへパスフレーズ入力なしでログインできる。いえい。
ちなみに、パスフレーズをキーチェーンに登録しておくと、SSHKeychain起動時に自動的にパスフレーズを入力してくれる。つまり、ログイン時にSSHKeychainを起動するように設定しておけば、ログイン時のパスフレーズ入力すら不要。すげー、恐いくらいに便利だぜ。