SSH: "Failed public key file"-Fehler beheben
Advertisement
Jeder der etwas mit SSH arbeitet weiß, dass bei Fehlern immer eine Devise gilt: Berechtigungen checken, Berechtigungen checken, Berechtigungen checken! Damit kann man i.d.R. auch 98% aller Fehler beheben.
Ebenso der heute bei mir aufgetretene Fehler in einer Appliance. Der Root-User kann sich hervorragend per SSH in die Maschine einloggen, der neu erstellte User kann es nicht. Die Keys werden durch einen Eintrag in der sshd_config zentral verwaltet.
Setzt man das LogLevel in der sshd_config auf DEBUG3, bekommt man Logeinträge die etwa so aussehen:
Die 3 hervorgehobenen Zeilen sind hier die wichtigen. SSHD versucht, auf das entsprechende AuthorizedKeyFile mit der User- und Group-ID des gewünschten Benutzers zuzugreifen. In diesem Falle versucht also der User testuser auf die Datei /usr/local/etc/sshd/.authorized_keys/testuser zuzugreifen. Dies muss ihm auch erlaubt sein. In meinem Fall konnte er das nicht, da das .authorized_keys-Verzeichnis eine 700er-Berechtigung hatte. Warum man die Berechtigung für einen Public Keys Ordner so restriktiv gesetzt war und warum OpenSSH selbst auf der höchsten Logstufe keine vielsagendere Fehlermeldung gibt, wird mir auf immer schleierhaft bleiben.
Da ich nicht wusste, dass der SSHD den Zugriff mit dem jeweiligen User versucht, hatte ich diese Problemquelle auch gar nicht ausgemacht und war schon mitten in der Fehlersuche in PAM- und SeLinux-Einstellungen. :-P