sshで接続時の「Too many authentication failures for username」エラーの対処法
「ssh-agent」が動作している場合 の内容を訂正しました
原因は接続先サーバのsshd_configで設定されてるsshの最大試行可能回数を越えたって事。
何でこんなエラーが発生したかってのは、
接続元のsshクライアントがssh_configのPreferredAuthenticationsにて設定されてる順で接続を試していき、失敗しすぎたから。
対応方法は、今回接続しようとしているサーバの認証方法によってちょっと違ってくる。
password認証のサーバに接続したい場合
上述したクライアントのssh_configに以下の設定を追加してやればいい。
PreferredAuthentications password
または、接続コマンドに直接オプション指定してやってもok。
ssh username@IPAddress -o PreferredAuthentications=password
publickey認証のサーバに接続したい場合
この場合はクライアントで「ssh-agent」が動作してるかどうかで対応方法が変わる。
「ssh-agent」が動作していない場合
上述したクライアントのssh_configに以下の設定を追加してやればいい。
IdentityFile /root/.ssh/id_rsa
または、接続コマンドに直接オプション指定してやってもok。
ssh username@IPAddress -o IdentityFile /root/.ssh/id_rsa
「ssh-agent」が動作している場合
ssh-agentはssh-addにて登録されている鍵ファイルを順に試していき、任意にその順番を指定する事は出来ないので、根本的に鍵ファイルを登録し過ぎているのが問題。
必要の無い鍵ファイルを削除するか、サーバ周りの環境を見直した方がいいのかも。
IdentitiesOnlyを指定してやればokでした。
Host hogehoge.com HostName fugafuga.com User hogo Port 12345 IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa
と、いろいろ書いてはみたけどそんな自信はない。
しかもsshの認証方式はもちろん他にもあるけどそこはノータッチで。