So sieht die Meldung aus
admin@203.0.113.10: Permission denied (publickey).Häufige Ursachen
- Falscher Benutzername, z. B. root statt ubuntu oder admin.
- Öffentlicher Schlüssel fehlt in
~/.ssh/authorized_keysoder steht dort umbrochen. - Rechte zu offen: Home-Verzeichnis gruppen-beschreibbar,
.sshnicht 700 oderauthorized_keysnicht 600 (StrictModes). - Alter RSA-Schlüssel mit SHA-1-Signatur: Neuere OpenSSH-Versionen lehnen
ssh-rsaab. - Der Agent bietet zu viele Schlüssel an und der Server bricht nach
MaxAuthTriesab.
Prüfen
- Im Client sehen, welche Schlüssel angeboten und abgelehnt werden
ssh -vvv admin@203.0.113.10 2>&1 | grep -E 'Offering|Server accepts|Authentications that can continue|no mutual' - Server-Log zur Anmeldung prüfen
journalctl -u ssh -u sshd --since '10 min ago' | grep -iE 'authentication|refused|bad ownership' - Rechte auf Home, .ssh und authorized_keys prüfen
ls -ld ~admin ~admin/.ssh ~admin/.ssh/authorized_keys - Effektive sshd-Einstellungen anzeigen
sshd -T | grep -E 'pubkeyauthentication|authorizedkeysfile|allowusers|pubkeyacceptedalgorithms'
Lösung
- Mit dem richtigen Schlüssel verbinden:
ssh -i ~/.ssh/id_ed25519 -o IdentitiesOnly=yes admin@host. - Schlüssel korrekt hinterlegen:
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@hostoder über die Konsole des Hosters. - Rechte setzen:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keysund Besitzer prüfen. - Alte RSA-Schlüssel durch Ed25519 ersetzen statt
ssh-rsawieder zu erlauben. - Bei SELinux:
restorecon -Rv ~/.ssh.
Häufige Fragen
Wie komme ich auf den Server, wenn ich ausgesperrt bin?
Über die Web- oder Rescue-Konsole des Hosters. Dort den Schlüssel in authorized_keys eintragen und Rechte prüfen – PasswordAuthentication nicht dauerhaft einschalten.
Warum klappt es mit einem Schlüssel und mit einem anderen nicht?
Der Server akzeptiert nur Schlüssel, deren öffentlicher Teil in authorized_keys steht und deren Typ erlaubt ist. ssh -vvv zeigt, welcher Schlüssel angeboten wurde.