"Permission denied, please try again." trotz richtigem Passwort

Der Server hat die Passwort-Anmeldung abgelehnt. Die Meldung ist dieselbe, ob das Passwort falsch ist, der Benutzer nicht existiert, das Konto gesperrt ist, root kein Passwort nutzen darf oder der Benutzer nicht in AllowUsers steht, denn der Server verrät dem Client nichts über den Grund. Prüfen Sie den Benutzernamen mit ssh -G server | grep '^user ' und lesen Sie dann das Log des Servers, das den Grund nennt.

Sie wollen nicht raten, welchen Benutzer und welches Passwort ein Server erwartet? Wardterm speichert beides zusammen mit dem Server in einem verschlüsselten Tresor. Zeigen

Aktualisiert am . Jeder Fall wurde mit OpenSSH 10.3 auf macOS gegen einen OpenSSH-10.0-Server auf Debian 13 in einem Wegwerf-Container nachgestellt, einschließlich der Logzeilen.

Was Sie sehen

user@server's password:
Permission denied, please try again.
user@server's password:
Permission denied, please try again.
user@server's password:
user@server: Permission denied (publickey,password).

SSH fragt standardmäßig dreimal und gibt dann die letzte Zeile aus. Die Liste in Klammern zeigt, was der Server noch akzeptiert. Enthält sie nicht password, oder bekamen Sie nie eine Passwortabfrage, haben Sie ein anderes Problem: siehe Permission denied (publickey).

Die Passwort-Anmeldung einzeln testen

Das schließt Schlüssel und Agents aus, und es fragt einmal:

ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password -o NumberOfPasswordPrompts=1 user@server

Ursache 1: der falsche Benutzername

Ohne user@ sendet SSH Ihren lokalen Benutzernamen oder den aus Ihrer Konfiguration:

ssh -G server | grep '^user '

Ein Benutzer, der nicht existiert, bekommt dieselbe Passwortabfrage und dieselbe Ablehnung, es sieht also genau wie ein falsches Passwort aus. Cloud-Images nutzen oft ubuntu, debian oder ec2-user statt root.

Um den Benutzer für einen Host einmal festzulegen, setzen Sie eine User-Zeile in seinen Block der SSH-Konfigurationsdatei.

Ursache 2: das falsche Passwort

Prüfen Sie das Naheliegende: Tastaturlayout, Feststelltaste und versteckte Zeichen beim Einfügen. SSH zeigt beim Tippen nichts an. Auch die Abfrage zählt: Enter passphrase for key will die Passphrase Ihrer Schlüsseldatei, während user@server's password: das Passwort des Kontos auf dem Server will.

Das Log des Servers lesen

Können Sie den Server auf anderem Weg erreichen, etwa über die Konsole eines Anbieters, klärt das die Sache. Auf Debian und Ubuntu:

sudo journalctl -u ssh -n 30

Auf Red-Hat-Systemen nehmen Sie -u sshd. Ältere Systeme loggen nach /var/log/auth.log oder /var/log/secure.

LogzeileBedeutung
Failed password for invalid user nameDieser Benutzer existiert auf dem Server nicht oder wird durch AllowUsers ausgeschlossen
User name from ... not allowed because not listed in AllowUsersDer Benutzer existiert, steht aber nicht auf der Liste
Failed password for nameDer Benutzer existiert und die Passwortprüfung ist fehlgeschlagen. Es ist das falsche Passwort oder eine der Ursachen 3 und 4
Überhaupt keine ZeileSie erreichen einen anderen Server oder Port. Prüfen Sie ssh -G server | grep -E '^(hostname|port) '

Ursache 3: root darf sich nicht mit Passwort anmelden

Der Standard für PermitRootLogin ist prohibit-password. Mit dieser Einstellung zeigt sshd die Abfrage weiter an und antwortet mit dieser Meldung, auch wenn das Root-Passwort stimmt, und das Log sagt Failed password for root. Das Log verrät den wahren Grund also nicht. Fragen Sie sshd direkt:

sudo sshd -T -C user=root,host=server,addr=203.0.113.10 | grep -i '^permitrootlogin'

Ein Ergebnis von prohibit-password oder dessen älterem Namen without-password bestätigt es. Melden Sie sich als normaler Benutzer an und nutzen Sie sudo, oder nutzen Sie einen Schlüssel für root. Siehe Root-Login deaktivieren.

Ursache 4: Das Konto ist gesperrt

sudo passwd -S name

Das zweite Feld ist L für gesperrt, P für ein nutzbares Passwort und NP für kein Passwort. Ein gesperrtes Konto führt zur selben Ablehnung, und das Log sagt wieder nur Failed password. Entsperren Sie es oder setzen Sie ein neues Passwort:

sudo passwd -u name
sudo passwd name

Ein abgelaufenes Konto liefert einen anderen Text, Your account has expired; please contact your system administrator. Prüfen Sie es mit sudo chage -l name. Eine nologin-Shell meldet Sie an und gibt dann This account is currently not available. aus.

Ursache 5: AllowUsers, DenyUsers und ihre Gruppenvarianten

Diese Regeln lehnen einen Benutzer auch mit richtigem Passwort ab. Sehen Sie nach, was für diesen Benutzer gilt, einschließlich Match-Blöcken:

sudo sshd -T -C user=name,host=server,addr=203.0.113.10 | grep -iE '^(allowusers|denyusers|allowgroups|denygroups)'

Denken Sie daran, auch die Dateien in /etc/ssh/sshd_config.d/ zu prüfen. Führen Sie nach dem Bearbeiten sudo sshd -t aus und laden Sie den Dienst neu.

Zu viele Versuche

Wiederholte Fehlschläge können zu einem neuen Symptom führen: Die Verbindung bricht vor der Passwortabfrage ab. Das ist eine Sperrzeit oder ein Bann. Siehe kex_exchange_identification und fail2ban.

Fragen

Warum meldet SSH Permission denied, obwohl das Passwort stimmt?

Oft ist der Benutzername falsch, root darf kein Passwort verwenden (PermitRootLogin prohibit-password), das Konto ist gesperrt oder AllowUsers schließt den Benutzer aus. Das Log des Servers nennt den wahren Grund.

Wie viele Passwortversuche erlaubt SSH?

Der Client fragt standardmäßig dreimal (NumberOfPasswordPrompts). Der Server erlaubt bis zu MaxAuthTries, standardmäßig 6, über alle Methoden gezählt.

Gibt ein falscher Benutzername einen anderen Fehler?

Nein. Ein Benutzer, den es nicht gibt, bekommt dieselbe Passwortabfrage und dieselbe Ablehnung. Nur das Log des Servers zeigt invalid user.

Quellen

Mehr zu Fehlermeldungen

Alle Anleitungen