20403
macのターミナルで秘密鍵でサーバーにログインするとき、  
予め ssh-add にて秘密鍵を登録しておき、

ssh -i ~/.ssh/user.rsa user@0.0.0.0

にて接続しています。

しかし、これらのサーバーは５０近く管理しているため（実際は５つ程度登録しただけで）、次第に  
「too many authentication」というエラーが出てしまうため、  
ssh-add -D で登録したものを全部削除して、接続するものだけ登録  
ということを繰り返しています。

どうして too many authentication が出るのでしょうか？  
sshコマンドではRSAファイルのパスを指定しているのでそのファイルでログインすればいいのになんでssh-
addしたファイルをすべて使ってログインしようと試みるのでしょうか？

対策はありますか？
CC BY-SA 3.0
2015-12-26T04:46:58.600
20390
2015-12-26T13:29:08.940
2015-12-26T05:14:35.813
10346
10346
question
macos ssh
macのSSHでの「too many authentication」対策
`ssh -v`で詳細のログを出すと何かわかるかもしれません。まずは下記のオプションをお試しください。

```

    ssh -i ~/.ssh/user.rsa 'IdentitiesOnly yes' user@0.0.0.0
    
```
CC BY-SA 3.0
2015-12-26T05:32:21.260
20392
2015-12-26T05:32:21.260
7837
20390
answer
OpenSSHのsshは-iや.ssh/configのIdentityFileで鍵を指定しても先にssh-
agentに登録されてる鍵での認証を試行します。.ssh/configでIdentitiesOnlyをyesにすることで、指定した鍵での認証を強制する事ができます。

鍵を指定したらそれを先に使うのが素直な動きに見えるんですが、なんでこういう挙動になっているのかはよくわかりません。

余談ですが、接続先毎に違う鍵を使うのはセキュリティ的にはあまり意味がありません。秘密鍵が1つ漏れたのなら、同じ場所にある他の秘密鍵もすべて漏れたと想定すべきです。その場合の鍵の無効化の事まで考えると、漏れが出やすい分かえって有害かもしれません。
CC BY-SA 3.0
2015-12-26T13:29:08.940
20403
2015-12-26T13:29:08.940
5793
20390
answer