ステキMac使いを目指す日記 RSSフィード

2006-11-19

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を起動するように設定しておけば、ログイン時のパスフレーズ入力すら不要。すげー、恐いくらいに便利だぜ。

トラックバック - http://d.hatena.ne.jp/mteramoto/20061119/p3