SSHアクセスが有効なhostgatorアカウントを持っています。このコマンドで生成された.pubキーファイルをアップロードしようとしたとき:
rsync -av -e "ssh -p2222" /home/user/.ssh/key.pub [email protected]:.ssh/authorized_keys
私は得続けます:
111.222.33.44からの切断切断を受信しました:2:ユーザー名の認証失敗回数が多すぎます[r] [r] [r] [] [] [] rsyncエラー:原因不明のエラー(コード255)io.c(601)[送信者= 3.0.7]
認証が失敗するまで、以前はsshを使っていました。しかし、認証失敗カウンタはリセットされないようです(12時間以上待っていましたが、テクニカルサポートは30分から1時間後にリセットすると仮定し、別の人がログインするたびにリセットします)。ユーザー名 "、jeesh)。
これは私の実を動かしています。私もこれをSlicehostカスタムサーバーに設定し、これらの人たちよりも問題が少なくなりました。
任意のヒント?おそらくサーバー側ではなく、クライアント側です。
これは通常、が誤ってサーバーに複数のSSHキーを提供していることが原因です。あまりにも多くのキーが提供された後、サーバーはキーを拒否します。
詳細な出力を得るためにssh
コマンドに-v
フラグを追加することで、これを自分で確認できます。サーバーが次のように言って接続を拒否するまで、たくさんの鍵が提示されていることがわかります。 "[user]に対する認証の失敗が多すぎます"。冗長モードがないと、あいまいなメッセージ「ピアによる接続のリセット」しか表示されません。
無関係なキーが提供されないようにするには、次のようにIdentitiesOnly
を追加して、(クライアントマシン上の)~/.ssh/config
ファイルのすべてのHostエントリでこれを明示的に指定する必要があります。
Host www.somehost.com
IdentityFile ~/.ssh/key_for_somehost_rsa
IdentitiesOnly yes
Port 22
Ssh-agentを使用している場合は、識別情報を消去するためにssh-add -D
を実行するのに役立ちます。
Sshホスト設定を使用していない場合は、ssh
コマンドで正しいキーを明示的に指定する必要があります。
ssh -i some_id_rsa -o 'IdentitiesOnly yes' them@there:/path/
注: 'IdentitiesOnly yes'パラメーターは引用符で囲む必要があります。
または
ssh -i some_id_rsa -o IdentitiesOnly=yes them@there:/path/
私はこれを行うためのより簡単な方法を見つけました(パスワード認証を使用している場合)。
ssh -o PubkeyAuthentication=no [email protected]
これにより、非キー認証が強制されます。すぐにログオンできました。
私もこのエラーが出ていて、サーバーが最大6回の試行を受け付けるように設定されていることがわかりました。
/etc/ssh/sshd_config
...
...
#MaxAuthTries 6
IdentitiesOnly yes
ファイルで~/.ssh/config
を設定することに加えて、他にもいくつかのオプションがあります。
MaxAuthTries
を増やします~/.ssh/
ディレクトリにあるキーペアをいくつか削除してssh-add -D
を実行してください。~/.ssh/config
ファイルの特定のホストにキーを明示的にリンクするそのようです:
Host foo
hostname foo.example.com
IdentityFile /home/YOU/.ssh/foo
Sshサーバーを少し弱めているので、おそらくこれはうまくいくやり方ではありません。与えられた接続試行でより多くのキーを受け入れるようになるからです。ここで総当たり攻撃のベクトルを考えてください。
不要なキーがあり、永久に削除される可能性があることを前提にしておくとよいでしょう。
そして、IdentitiesOnlyを設定するアプローチは、おそらくこの問題に対処するための推奨方法です。
これを〜/ .ssh/configに追加しました。
Host *
IdentitiesOnly yes
デフォルトではオプションIdentitiesOnly = yesが有効になっています。秘密鍵で接続する必要がある場合は、オプション-iで指定してください。
パスワードを持っていて、そのパスワードを使ってログインするだけの場合は、次のようにします。
パスワード認証のみを使用し、公開鍵を使用せず、やや誤解を招く「キーボードインタラクティブ」(パスワードを含むスーパーセット)を使用しないようにするには、コマンドラインからこれを実行できます。
ssh -o PreferredAuthentications=password [email protected]
以下のSSHエラーが発生した場合:
$ Received disconnect from Host: 2: Too many authentication failures for root
これは、(私のシステムではデフォルトで)5つ以上のDSA/RSA IDファイルが.sshディレクトリに格納されていて、コマンドラインで '-i'オプションが指定されていない場合に起こります。
Sshクライアントは、最初に各ID(秘密鍵)を使ってログインを試み、次にパスワード認証を要求します。ただし、sshdは、5回の不正なログイン試行後に接続を切断します(これもデフォルトの設定は異なる場合があります)。
.sshディレクトリに多数の秘密鍵がある場合は、オプションの '-o'引数を使用してコマンドラインで "Public Key Authentication"を無効にすることができます。
例えば:
$ ssh -o PubkeyAuthentication=no root@Host
@Davidの話を止めて、このIdentitiesOnly yes
を.ssh/configに追加するだけで、ssh -o PubkeyAuthentication=no.
と同じことができます。
ログインしたら、.ssh/authorized_keys
を削除します。それでは、ローカルマシンに戻って次のように入力してください。
cat ~/.ssh/id_rsa.pub | ssh -o PubkeyAuthentication=no user@IP_ADDR 'cat >> .ssh/authorized_keys'
。これであなたのSSHは公開鍵で再び有効になるはずです。
私はこれが古いスレッドであることを知っています、しかし私はちょうど私が同じエラーメッセージに出くわしたことをここに加えたいと思いました、しかしそれはキーを使用していたユーザーよりルートである.sshフォルダの所有者によって引き起こされました。次のコマンドを実行して問題を修正しました。
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
私の場合、問題はディレクトリのアクセス権でした。これは私のためにそれを修正しました:
$ chmod 750 ~;chmod 700 ~/.ssh
私の場合、それは私がユーザー名 "ubuntu"を使用していたために起こっていました、しかしこの例のユーザー名は "ec2-user"でした
私が "John T"が提案したことをした後、私はこの誤りを得ました:
許可が拒否されました(公開鍵)。
それから私はこの答えで解決策(すなわち、ユーザー名を「ec2-user」に変更すること)を見つけました: https://stackoverflow.com/questions/1454629/aws-ssh-access-permission- denied-publickey-issue
認証失敗回数が多すぎます
このメッセージは、許可された制限がリモートSSHサーバーに適用されているために、失敗した認証試行が多すぎることによって引き起こされます。これは、SSHエージェントに追加されたIDが多すぎることを潜在的に意味します。
ここにいくつかの提案があります:
-v
を追加します(使用しているIDが多すぎます)。ssh-add -l
でリストします。ssh-add -d
で削除します。ssh-add -D
によってすべてのアイデンティティを削除し、関連のあるアイデンティティのみを再度追加することもできます。SSHサーバーにアクセスしている場合は、MaxAuthTries
オプションを確認してください( man sshd_config
を参照)。
それでも問題が解決しない場合は、正しい資格情報またはファイルを使用しているかどうかを確認してください。
私の公開鍵は.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
に移動した後、私は自分のキーで正常にログインできます。