So sieht die Meldung aus
Received disconnect from 203.0.113.10 port 22:2: Too many authentication failures
Disconnected from 203.0.113.10 port 22
user@203.0.113.10: Permission denied (publickey).Häufige Ursachen
- Der ssh-agent hält viele Schlüssel und bietet sie nacheinander an.
- Für den Host ist keine
IdentityFilegesetzt, deshalb probiert ssh alle Standard- und Agent-Schlüssel. - Der richtige Schlüssel ist auf dem Server nicht autorisiert.
MaxAuthTriesauf dem Server ist niedrig.- Alte Schlüssel in
~/.sshwerden zuerst probiert.
Prüfen
- Wie viele Schlüssel hält der Agent?
ssh-add -l - Welche Schlüssel werden in welcher Reihenfolge angeboten?
ssh -v user@server.example.com 2>&1 | grep -iE 'offering|authentications that can continue' - Das Limit auf dem Server (Konsole oder anderer Zugang)
sshd -T | grep -i maxauthtries
Lösung
- Nur den genannten Schlüssel anbieten:
ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 user@server.example.com. - Dauerhaft in
~/.ssh/config:Host server,IdentityFile ~/.ssh/id_ed25519,IdentitiesOnly yes. - Nicht benötigte Schlüssel aus dem Agent entfernen:
ssh-add -D, dann nur das Nötige mitssh-add ~/.ssh/id_ed25519hinzufügen. - Prüfen, ob der öffentliche Schlüssel in
~/.ssh/authorized_keysauf dem Server steht, mit den richtigen Rechten. MaxAuthTriesauf dem Server nur erhöhen, wenn es wirklich sein muss; weniger Schlüssel ist die bessere Lösung.
Häufige Fragen
Warum kann ich nicht einmal mein Passwort tippen?
Schlüsselversuche kommen zuerst. Das Limit ist erreicht, bevor ssh zur Passwort-Anmeldung kommt.
Ist das dasselbe wie eine Sperre durch fail2ban?
Nein. Diese Trennung ist eine einzelne Verbindung, die das Limit pro Verbindung erreicht. Eine fail2ban-Sperre blockiert deine Adresse und zeigt sich als Timeout oder Ablehnung, siehe Port 22 timed out.