Macのsshで、~/.ssh/configに「IdentitiesOnly yes」を指定すると、毎回上記画面のようにパスワードの入力を求められるようになり困っていました。「パスワードをキーチェーンに保存」にチェックしても毎回このウィンドウがポップアップしてしまうのです。
「IdentitiesOnly yes」を指定しなければ良いのですが、「IdentitiesOnly yes」無しの設定が増えすぎると「Too many authentication failures」と言われログインできなくなってしまう問題があります。また、パスフレーズ無しの秘密鍵を使うという最終手段(?)は、セキュリティの観点からできれば使いたくありませんでした。
打つ手なしかなと思い諦めかけていたところ、偶然、意外な解決方法があることを発見しました。以下その方法を説明します。
公開鍵id_rsa.pubを~/.sshに保存する
見つけた解決策は、Apple関連のQ and AサイトAsk Differentに掲載されていたもの。パスワードダイアログが表示されるという質問に対し、以下のような解決策が提示されています。
cd ~/.ssh ssh-keygen -y -f id_rsa > id_rsa.pub
~/.sshに秘密鍵「ir_rsa」と、それに対応した公開鍵「id_rsa.pub」を保存しておけばよいようです。そんな馬鹿なと思いましたが、この通りに試してみると、本当にパスワードなしでログインできることが確認できました!秘密鍵名がid_rsaではない場合、「秘密鍵名.pub」があれば良いようです。
まとめると、まず~/.ssh/configが以下のようになっている場合、
ForwardAgent yes ServerAliveInterval 60 # local machines Host bronze User sora Hostname bronze.home.jp IdentityFile ~/.ssh/id_rsa_bronze IdentitiesOnly yes
~/.ssh以下に、秘密鍵「id_rsa_bronze」と、公開鍵「id_rsa_bronze.pub」を保存しておけばキーチェインに保存したパスワードが使われるようになります。
元の質問はMac OS X Lion時代のもののようですが、Yosemiteでも同じように動きます。「IdentitiesOnly yes」のおかげで、パスフレーズを毎回入力しなければならなくてうんざりしている方は試してみてください。