pageant認証での使用する鍵の選択
確認ですが、この認証回数というのは、下記の説明で言う「公開鍵を送出 - PK_OK が返るまで...すべて試す」のループという理解であっていますか?
http://ttssh2.osdn.jp/manual/ja/reference/sourcecode.html#ttssh
そうです。デフォルト(MaxAuthTries=6)だと6つ目の鍵での認証試行をした後に切断されます。
CheckAuthFirst=1 の時の none での試行はカウントされていないっぽいです。
ええ…有効な鍵があるかどうか確認するだけで消費するんですか...
でも確かにSSH_MSG_USERAUTH_REQUESTですし、鍵が有効かどうか確認できるだけでも攻撃者にとっては有益な情報になってしまいますね。
none の場合はサポートされている認証方式を返すだけ(この用途で使うのはおまけ的な感じがしますが)なので、流石にインクリメントはしないですよね。
pageant 認証時に使用する鍵の選択方法の追加。
現状の問題点
pageant に複数の鍵が登録されている場合、現状では先頭から順番に認証を試行していく。
サーバ側の MaxAuthTries (デフォルトは6)より多くの鍵が pageant に登録されている場合、 すべての鍵を試す前に認証回数の上限に達してしまうため、後ろの方の鍵が利用できない。
他のクライアントの動作
OpenSSH client
オプション等で指定しない場合はエージェントの鍵を上から順番に試行する。
エージェントで利用する鍵を指定する場合は、-i オプションで利用したい鍵に対応する公開鍵ファイルを指定する。
最初に公開鍵ファイルに対応するエージェント上の鍵で認証を試行し、それが失敗した場合は残りの鍵を上から順番に試す。IdentitiesOnly=yes の時は指定した公開鍵のみを利用する。認証が失敗した時は他の認証方式(Keyboard-Interactive等)を利用する。
PuTTY
使用するPageantの鍵を指定するには、秘密鍵を設定する。 Connection -> SSH -> Auth -> "Private key file for authentication"
対応案
検討中