質問: macでのssh-agentおよび/またはmacキーチェーンの問題 tl; dr:ssh-agentにidがあります。 1つを除いてすべてが使用されます。 1つは使用するとエージェントとキーチェーンに追加されますが、キーがエージェントにないかのように(また、ない場合はエージェントが取得できなかったかのように)、パスフレーズの入力を何度も求められます。キーチェーンからのパスフレーズ)。詳細:エージェントを使用してパスフレーズをキーチェーンに保存するssh(rsa、プロトコル2)キーがたくさんあります。これらのキーの1つ(および1つのみ)について、そしてごく最近、sshはエージェントのidを無視し始めました。あれは: キーを使用して接続します(ssh -i keyfile user@host、identitiesonlyはhost *に当てはまります) osxはパスフレーズを要求します。キーチェーンに保存チェックボックスを設定しました。 idが暗黙的にエージェントに追加され、キーチェーンエントリが追加されます 接続を閉じます 再接続します エージェントやキーチェーンのエントリが存在しないかのように、パスフレーズの入力を再度求められます 私は次のことを確認しました。-キーチェーンエントリは、ssh、ssh-add、およびssh-agentに対して「常に許可」に設定されています。 -キーファイルに正しい権限が設定されています。 -idがエージェントにロードされます。 -毎回パスフレーズを入力すれば、ログインはそのidで機能します。私が試したこと: キーチェーンエントリ全体を削除してから、sshを再開しました。パスフレーズの入力を求められ、入力すると、キーチェーンのエントリとエージェントのidが追加されました。接続が機能し、次回はもう一度尋ねられました。 キーファイル自体の名前を変更します。新しいキーチェーンエントリが作成され、接続は機能しますが、次の接続でパスフレーズの入力を再度求められます。 ssh-add -dに続いてssh-add -kを実行しました。問題のあるキーが追加されたidの中にあることを確認しました。したがって、原則として、エージェントとキーチェーン間の通信は機能しているようです。それでももう一度尋ねます。 これは他のどのキーでも発生せず、キー自体はsshで機能します。また、キーに非常に強力なパスフレーズを使用しているため、本当に煩わしくなります。
回答: 問題は、エージェントにidが多すぎることでした。通常、sshは、エージェントにidがあると、-iオプションを無視し、エージェントのidを順番に使用します。たとえば、5つ以上ある場合、失敗した試行が多すぎるため、サーバーはそれらをすべて拒否し、パスワードの使用に戻ります。host *にidentitiesonlyを設定すると、sshは-iオプション(または.ssh/configのidentityfile)を使用しますが、次の場合はエージェントを検索します。指定されたidはすでにロック解除されているため、この問題はあらゆる角度から修正されました。