tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

【ssh】macやlinuxでsshするとき`Too many authentication failures for`と言われるときの対処方

はじめに

いままで繋がっていたサーバにsshする際に急にこんなエラーが出ることがあります。

Received disconnect from xxx.xxx.xxx.xxx: 2: Too many authentication failures for ユーザ名

直前に設定を変更した、とか思い当たるふしがないのに急に出るので一瞬戸惑います。
なので、備忘録もかねたこれの対処方法メモ。

おしな

  1. 原因
  2. 対処法 - 一時的に繋ぎたい
  3. 対処法 - 設定として対処したい

1. 原因

原因は~/.ssh/configの設定によるものらしいです。
設定によるといっても誤った設定をしたこが原因じゃないというのがやっかいなところ。

では、どういう時に起きるかと言うと、 configに書いてないサーバなどに普通にパスワードで入ろうとした場合などで
サーバーに接続できなかった際に~/.ssh/configで設定されてる接続を上から試すため、
失敗の上限にひっかかっておきたりするらしいです。

なので~/.ssh/configにいろんなサーバの接続先の設定が増えていった際におこるのだ、ということらしいです。

2. 対処法 - 一時的に繋ぎたい

自分の場合、config設定にないサーバにちょっと繋ごうとして起こったので
そんなときはこれだけでも良いかもしれないです。

sshコマンドに-oオプションをつけてパスワードを強制することで回避します。

$ ssh -A ユーザ名@接続先 -o PreferredAuthentications=password

3. 対処法 - 設定として対処したい

設定として~/.ssh/configに書いてしまいます。
configの最後にこんな感じで追記します。

$ vi ~/.ssh/config
---- vi追記 ----
Host xxx.xxx.xxx.xxx
    HostName xxx.xxx.xxx.xxx
    PreferredAuthentications password
---------------
補足

気をつけたいのはこのエラーに関するサイトには
PreferredAuthentications passwordと追記のように書いてあるので
素直にその1行のみ追加したり他に影響がある書き方をすると
他サーバへの設定にも影響して他サーバに入れなくなるので、
ipでもhostnameでも上記のように対象のサーバだけの設定にしたほうが良いですね。

参考

こちらが参考になりました!thx!
* http://d.hatena.ne.jp/kou_i/20101121/1290352589

おわり

急に起こると焦るけどそんなときに思い出せる自分メモになればなーと。