it-swarm.com.de

Von meinem eigenen Server gesperrt: Beim Herstellen einer Verbindung über ssh werden sofort "Zu viele Authentifizierungsfehler" angezeigt

Ich habe eine AWS EC2 Ubuntu-Instanz für Haustierprojekte. Wenn ich mich eines Tages anmelden wollte, tritt folgender Fehler auf:

~$ ssh -i"/home/kona/.ssh/aws_kona_id" [email protected] -p22 
Enter passphrase for key '/home/kona/.ssh/aws_kona_id': 
Received disconnect from [IP address] port 22:2: Too many authentication failures
Disconnected from [IP address] port 22
~$

kona ist das einzige auf diesem Server aktivierte Konto

Ich habe versucht, den Server neu zu starten, meine IP-Adresse zu ändern und zu warten.

BEARBEITEN:

[email protected]:~$ ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" -v [email protected] -p22 
OpenSSH_8.1p1 Debian-1, OpenSSL 1.1.1d  10 Sep 2019
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to ec2-3-17-146-113.us-east-2.compute.amazonaws.com [3.17.146.113] port 22.
debug1: Connection established.
debug1: identity file /home/kona/.ssh/aws_kona_id type -1
debug1: identity file /home/kona/.ssh/aws_kona_id-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.1p1 Debian-1
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
debug1: match: OpenSSH_7.6p1 Ubuntu-4ubuntu0.3 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug1: Authenticating to ec2-3-17-146-113.us-east-2.compute.amazonaws.com:22 as 'kona'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256
debug1: kex: Host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: ecdsa-sha2-nistp256 SHA256:D3sIum9dMyyHNjtnL7Pr4u5DhmP5aQ1jaZ8Adsdma9E
debug1: Host 'ec2-3-17-146-113.us-east-2.compute.amazonaws.com' is known and matches the ECDSA Host key.
debug1: Found key in /home/kona/.ssh/known_hosts:41
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /home/kona/.ssh/aws_kona_id  explicit
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/kona/.ssh/aws_kona_id
Enter passphrase for key '/home/kona/.ssh/aws_kona_id': 
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey).
[email protected]:~$ 
26
Arctic Kona

Dieser Fehler bedeutet normalerweise, dass Sie zu viele Schlüssel in Ihrem ssh-agent geladen haben.

Erläuterung: Ihr SSH-Client versucht, alle Schlüssel aus ssh-agent einzeln zu verwenden, bevor er den mit angegebenen Schlüssel verwenden kann -i aws_kona_id. Ja, es ist ein bisschen kontraintuitiv. Da jeder dieser Versuche als Authentifizierungsfehler gilt und standardmäßig nur 5 Versuche vom SSH-Server zugelassen werden, wird der folgende Fehler angezeigt: Zu viele Authentifizierungsfehler.

Sie können die mit ssh -v versuchten Identitäten (Schlüssel) anzeigen.

Die Lösung besteht darin, ssh anzuweisen, nur die in der Befehlszeile angegebenen Identitäten zu verwenden:

ssh -o "IdentitiesOnly yes" -i ~/.ssh/aws_kona_id -v [email protected]

Wenn dies nicht hilft, veröffentlichen Sie die Ausgabe dieses Befehls hier.

48
MLu

Ich denke, MLus Antwort ist in diesem Fall möglicherweise richtig. Die Möglichkeit, dies zu überprüfen, besteht darin, einen Befehlszeilenbefehl ssh auszuführen, der den richtigen Schlüssel für den Server angibt.

ssh -i "keyfile.pem" [email protected]

Wenn dies nicht funktioniert und im allgemeinen Fall "Ich wurde von meinem Server ausgesperrt, helfen Sie!", Wird generell empfohlen, das Volume als Daten-Volume auf einer anderen Instanz bereitzustellen.

  1. Stoppen Sie den EC2-Server.
  2. Mounten Sie das Volume als Daten-Volume auf eine neue Instanz.
  3. Führen Sie alle erforderlichen Untersuchungen oder Reparaturen durch (siehe Protokolle, Hinzufügen von Schlüsseln usw.). Dies kann das Erstellen neuer Benutzer und neuer Schlüssel, das Ändern von Dateien im Dateisystem usw. umfassen.
  4. Mounten Sie das Volume als Root-Volume auf der ursprünglichen Instanz.

Wiederholen, bis Sie Zugriff haben. Wenn Sie keinen Zugriff erhalten, erhalten Sie zumindest Zugriff auf Ihre Daten.

29
Tim

SSH versucht standardmäßig alle verfügbaren SSH-Schlüssel. Dies geschieht in einer "zufälligen" Reihenfolge. Wenn Sie die Option -i Angeben, wird SSH lediglich angewiesen, diese Schlüsseldatei zur Liste der zu versuchenden Schlüssel hinzuzufügen.

Es tut nicht:

  • beschränken Sie SSH darauf, nur diesen Schlüssel zu verwenden
  • sagen Sie SSH, dass sie zuerst diesen Schlüssel versuchen soll

Was am Ende passiert (ziemlich oft, wenn Sie viele Schlüssel verwenden), ist, dass SSH ein paar zufällige Schlüssel versucht, die nicht funktionieren, und der Server keine Authentifizierungsversuche von Ihrem Client akzeptiert.

Wenn Sie SSH anweisen möchten, "nur diesen Schlüssel zu verwenden ", müssen Sie die Option IdentitiesOnly yes Angeben:

ssh -o "IdentitiesOnly yes" -i"/home/kona/.ssh/aws_kona_id" [email protected] -p22 

IdentitiesOnly yes Weist SSH an, nur die explizit angegebenen Schlüssel zu verwenden (in diesem Fall nur den mit -i Angegebenen Schlüssel).

Aus diesem Grund definiere ich immer die Host-Konfiguration in .ssh/config, Wenn ich benutzerdefinierte Schlüssel für verschiedene Hosts verwende. Dies ermöglicht mir, einen einfachen Alias ​​zu verwenden und, was noch wichtiger ist, IdentitiesOnly yes Anzugeben und welchen Schlüssel ich verwenden soll, um diese Art von Fehler zu vermeiden:

Host kona.server
    Hostname server.akona.me
    IdentityFile ~/.ssh/aws_kona_id
    IdentitiesOnly yes
    Port 22
    User kona

Mit den oben genannten Angaben in Ihrem .ssh/config Sollten Sie sich auf Ihrem Server einfach anmelden können:

$ ssh kona.server
26
Giacomo Alzetta

Die soeben hinzugefügte ausführliche Ausgabe zeigt, dass Sie Permission denied Für ~/.ssh/aws_kona_id Erhalten.

Das ist ein ganz anderes Problem als Too many authentication failures.

Vielleicht ist Ihr aws_kona_id Nicht der richtige Schlüssel für den Benutzer (und deshalb hat er immer wieder alle anderen Identitäten des SSH-Agenten ausprobiert), oder Sie sollten das Standard-EC2-Benutzerkonto verwenden, z. ec2-user Oder ubuntu oder was hast du?.

Probieren Sie diese Konten aus oder versuchen Sie, den richtigen Schlüssel für den Benutzer kona zu finden.

5
MLu

In der Ubuntu EC2-Instanz ist ein Ubuntu-Benutzerkonto mit Ihrem SSH-Schlüssel installiert.

Wenn Sie dieses Konto nicht entfernen, können Sie dennoch eine Verbindung herstellen mit:

ssh -i "/home/kona/.ssh/aws_kona_id" [email protected]

Und beheben Sie Ihr Kontoproblem nach Sudo -i und Untersuchung /home/kona/.ssh/authorized_keys

1
profy