it-mure.jp.net

Macでのssh-agentおよび/またはMacキーチェーンの問題

tl; dr:ssh-agentにIDがあります。 1つを除いてすべてが使用されます。 1つは使用するとエージェントとキーチェーンに追加されますが、キーがエージェントにないかのように(また、ない場合はエージェントが取得できなかったかのように)、パスフレーズの入力を何度も求められます。キーチェーンからのパスフレーズ)。

詳細:

エージェントを使用してパスフレーズをキーチェーンに保存するSSH(RSA、プロトコル2)キーがたくさんあります。

これらのキーの1つ(および1つのみ)について、そしてごく最近、SSHはエージェントのIDを無視し始めました。あれは:

  • キーを使用して接続します(ssh -i keyfile [email protected]IdentitiesOnlyHost *に当てはまります)
  • OSXはパスフレーズを要求します。キーチェーンに保存チェックボックスを設定しました。
  • iDが暗黙的にエージェントに追加され、キーチェーンエントリが追加されます
  • 接続を閉じます
  • 再接続します
  • エージェントやキーチェーンのエントリが存在しないかのように、パスフレーズの入力を再度求められます

私は次のことを確認しました。-キーチェーンエントリは、ssh、ssh-add、およびssh-agentに対して「常に許可」に設定されています。 -キーファイルに正しい権限が設定されています。 -IDがエージェントにロードされます。 -毎回パスフレーズを入力すれば、ログインはそのIDで機能します。

私が試したこと:

  • キーチェーンエントリ全体を削除してから、sshを再開しました。パスフレーズの入力を求められ、入力すると、キーチェーンのエントリとエージェントのIDが追加されました。接続が機能し、次回はもう一度尋ねられました。
  • キーファイル自体の名前を変更します。新しいキーチェーンエントリが作成され、接続は機能しますが、次の接続でパスフレーズの入力を再度求められます。
  • ssh-add -Dに続いてssh-add -kを実行しました。問題のあるキーが追加されたIDの中にあることを確認しました。したがって、原則として、エージェントとキーチェーン間の通信は機能しているようです。それでももう一度尋ねます。

これは他のどのキーでも発生せず、キー自体はSSHで機能します。また、キーに非常に強力なパスフレーズを使用しているため、本当に煩わしくなります。

3
Bernd Haug

問題は、エージェントにIDが多すぎることでした。通常、sshは、エージェントにIDがあると、-iオプションを無視し、エージェントのIDを順番に使用します。たとえば、5つ以上ある場合、失敗した試行が多すぎるため、サーバーはそれらをすべて拒否し、パスワードの使用に戻ります。

Host *identitiesonlyを設定すると、sshは-iオプション(または.ssh/configidentityfile)を使用しますが、次の場合はエージェントを検索します。指定されたIDはすでにロック解除されているため、この問題はあらゆる角度から修正されました。

0
Bernd Haug

IDがエージェントに存在する場合は、「-ikeyfile」引数を使用しないでください。

これを試して:

ssh-add keyfile
ssh -v [email protected]

(vはデバッグに役立ちます)

2
bbaassssiiee

Dave Dribinのブログをフォローしてください( Mac OS X 10.5(Leopard)のssh-agent

次のコマンドを実行する必要があります。

ssh-add -k /path/to/your/private/key

その後、次の方法で構成を確認します。

sh-add -L
0
d.danailov