sshアクセスを有効にしたhostgatorアカウントを持っています。生成された.pub鍵ファイルをこのコマンドでアップロードしようとすると
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub username@111.222.33.44:.ssh/authorized_keys
私は何度も何度も
Received disconnect from 111.222.33.44: 2: Too many authentication failures for username rsync: connection unexpectedly closed (0 bytes received so far) [sender] rsync error: unexplained error (code 255) at io.c(601) [sender=3.0.7]
私は以前、認証に失敗するまでsshをいじっていました。しかし今は、認証失敗カウンタがリセットされないようです(12時間以上待っていますが、技術サポートは30分から1時間後にリセットされると “仮定しています”、別の人が “ユーザ名でログインしようとするたびにリセットされます “と言っていました
これは私を狂わせている。私もSlicehostのカスタムサーバーでこれをセットアップしていたし、これらの人たちよりも問題が少なかった
何かヒントは?おそらくそれはサーバー側ではなく、クライアント側の何かです
274 Gabriel A. Zorrilla 2010-09-12
これは通常、不注意で複数の ssh 鍵をサーバに提供してしまうことで起こります。あまりにも多くの鍵が提供されると、サーバはどの鍵も拒否します
-v
フラグを ssh
コマンドに追加することで、詳細な出力を得ることができます。サーバが接続を拒否するまで、たくさんの鍵が提供されているのがわかるでしょう。”Too many authentication failures for [user] “とサーバが接続を拒否するまで、たくさんの鍵が提供されているのがわかります。verbose モードを使わないと、”Connection reset by peer” という曖昧なメッセージしか表示されません
無関係な鍵が提供されないようにするためには、~/.ssh/config
(クライアントマシン上の) ファイルの各ホストエントリに、以下のように IdentitiesOnly
を追加して明示的に指定しなければなりません
Host www.somehost.com
IdentityFile ~/.ssh/key_for_somehost_rsa
IdentitiesOnly yes
Port 22
ssh-agent を使う場合は、ssh-add -D
を実行して ID をクリアするのが便利です
ssh hosts の設定を使用していない場合は、ssh
コマンドで以下のように正しい鍵を明示的に指定しなければなりません
ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/
注意: ‘IdentitiesOnly yes’ パラメータは引用符で区切る必要があります
or
ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/
440 John T 2010-09-12
もっと簡単な方法を見つけました(パスワード認証を使う場合)
ssh -o PubkeyAuthentication=no username@hostname.com
これで非キー認証が強制されます。すぐにログオンできました
205 Ben West 2012-03-25
私もこのエラーが発生していて、サーバーが6回までの試行を受け入れるように設定されていることがわかりました
/etc/ssh/sshd_config
...
...
#MaxAuthTries 6
IdentitiesOnly yes
を~/.ssh/config
ファイルに設定する以外にも、いくつかのオプションがあります
- (ssh サーバ上の)
MaxAuthTries
を増やす ~/.ssh/
ディレクトリに存在するキーペアを削除し、ssh-add -D
を実行してください~/.ssh/config
ファイルの中で、キーを指定したホストに明示的にリンクします
Like so:
host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
これはおそらく良い方法ではないでしょう。 ssh サーバを少し弱体化させてしまいます。ここでは、ブルートフォース攻撃のベクトルを考えてみてください
あなたが必要とされていないと永久に削除することができるキーを持っていると仮定して、行くのに良い方法です
そして、IdentitiesOnlyを設定するというアプローチは、おそらく好ましい対処法だと思います
29 slm 2011-06-09
これを ~/.ssh/config に追加しました
Host *
IdentitiesOnly yes
デフォルトではIdentitiesOnly=yesオプションを有効にしています。秘密鍵で接続する必要がある場合は、オプション -i で指定する必要があります
8 Евгений Шаповалов 2014-07-23
以下のようなSSHエラーが出たら
$ Received disconnect from host: 2: Too many authentication failures for root
これは、(私のシステムの既定では) .ssh ディレクトリに 5 つ以上の DSA/RSA ID ファイルが保存されていて、コマンドラインで「-i」オプションが指定されていない場合に発生する可能性があります
ssh クライアントは最初に各 ID (秘密鍵) を使用してログインを試み、次にパスワード認証のプロンプトが表示されます。しかし、sshd は 5 回の不正なログイン試行の後に接続を切断します (ここでもデフォルトは変化するかもしれません)
.ssh ディレクトリに多数の秘密鍵がある場合は、「-o」オプションの引数を使用して、コマンドラインで「公開鍵認証」を無効にすることができます
For example:
$ ssh -o PubkeyAuthentication=no root@host
6 Will Verna 2013-09-20
パスワードを持っていて、パスワードを使ってシンプルにログインしたい場合は、その方法をご紹介します
パスワード認証のみを使用し、Public-key を使用せず、やや誤解を招く “keyboard-interactive” (パスワードを含む上位セット) を使用しないようにするには、コマンドラインから以下のようにします
ssh -o PreferredAuthentications=password user@example.com
6 Greg Rundlett 2015-06-19
David が言っていたのと同じように、この IdentitiesOnly yes
を .ssh/設定に追加するだけで、ssh -o PubkeyAuthentication=no.
と同じことができます
ログインしたら、.ssh/authorized_keys
を削除します。さて、ローカルマシンに戻って、以下のように入力します
cat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
.これで公開鍵を使って ssh を再利用できるようになるはずです
3 Alan Dong 2014-01-25
これは古いスレッドですが、私も同じエラーメッセージに遭遇しましたが、鍵を使用しているユーザではなく、.ssh フォルダの所有者が root であることが原因でした。私は以下のコマンドを実行して問題を修正しました
sudo chown -R user:user /home/user/.ssh
また、.ssh フォルダのパーミッションが正しいことも確認しました
sudo chmod 700 /home/user/.ssh
.ssh ディレクトリ内のファイルは、600 のパーミッションを持つ必要があります
sudo chmod 600 /home/user/.ssh/authorized_keys
2 Adam 2014-06-13
私の場合、問題はディレクトリのパーミッションでした。これは私のためにそれを修正しました
$ chmod 750 ~;chmod 700 ~/.ssh
1 tbc0 2016-02-20
認証失敗が多すぎる
このメッセージは、リモートの SSH サーバで強制されている許可された制限の中で、 認証に失敗した回数が多すぎるために発生します。これは、SSH エージェントに追加された ID が多すぎることを意味している可能性があります
ここでは、いくつかの提案を紹介します
-v
を追加して、それがそうであるかどうかを確認します(アイデンティティを使いすぎています)ssh-add -l
で追加されたIDをリストアップします- でエージェントから失敗したIDを削除する。
ssh-add -d
- また、
ssh-add -D
ですべてのIDを削除し、関連するIDだけを追加することもできます SSHサーバにアクセスしている場合は、
MaxAuthTries
オプションにチェックを入れてください(参照:man sshd_config
)関連記事です。
sshd_config
の’MaxAuthTries’制限のための接続は?どれも役に立たない場合は、正しい資格情報やファイルを使用しているかどうかを確認してください
1 kenorb 2018-04-12
私の場合は、ユーザー名 “ubuntu “を使用していたために発生していましたが、このインスタンスのユーザー名は “ec2-user “でした
John T “の提案通りにやってみたら、このエラーが出ました
許可は拒否された(publickey)
そして、私はこの回答の中に解決策(すなわち、ユーザー名を “ec2-user “に変更)を見つけました。https://stackoverflow.com/questions/1454629/aws-ssh-access-permission-denied-publickey-issue
0 Deepak Joy 2014-11-19
公開鍵を.ssh/authorized_keys2
に入れていたのですが、サーバーは.ssh/authorized_keys
しか読めないように設定されていました
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
ファイルを.ssh/authorized_keys
に移動したら、自分のキーで正常にログインできるようになりました
0 Benedikt Köppel 2017-05-05
これは私のための楽しいものでした。リモートログインに使用していたキーボードとは異なるローカライズモードで、ローカルでパスワードを変更していたことが判明した。これにより、私のパスワードは事実上、私が思っていたものとは違ったものになってしまいました。これは、私の特殊文字の一つがキーボードが言っていたものと違っていたからでしょう
0 ekeyser 2019-11-24
このメッセージは、正しいユーザー名とパスワードが入力されていない場合に表示されることがあります
まず、ユーザーがリストアップされていることを確認します
vim /etc/passwd
-1 Matoeil 2016-09-26