Da dies nicht explizit erwähnt wurde, ist sshd bei den Berechtigungen für die authorized_keysDateien standardmäßig sehr streng . Also, wenn authorized_keysist beschreibbar für jemanden anderen als den Benutzer oder kann beschreibbar gemacht werden , indem jemand anderes als der Benutzer, wird es ablehnen , zu authentifizieren (es sei denn , sshd mit konfiguriert ist StrictModes no)
Was ich mit "kann beschreibbar gemacht werden" meine, ist, dass, wenn eines der übergeordneten Verzeichnisse für andere als den Benutzer beschreibbar ist, Benutzer, die diese Verzeichnisse ändern dürfen, Berechtigungen so ändern können, dass sie authorized_keys ändern / ersetzen können.
Wenn das /home/username/.sshVerzeichnis nicht im Besitz des Benutzers ist und der Benutzer daher keine Berechtigung zum Lesen des Schlüssels hat, können Probleme auftreten:
drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
Beachten Sie, dass Jane die .sshDatei nicht besitzt. Beheben Sie dies über
chown -R jane:jane /home/jane/.ssh
Diese Art von Dateisystem-Berechtigungsproblemen wird nicht ssh -vangezeigt, und sie werden nicht einmal in den sshd-Protokollen (!) Angezeigt, bis Sie die Protokollstufe auf DEBUG setzen.
- Bearbeiten
/etc/ssh/sshd_config. Sie möchten eine Zeile, die LogLevel DEBUGdort irgendwo liest . Laden Sie den SSH-Server mithilfe des von der Distribution bereitgestellten Mechanismus neu. ( service sshd reloadunter RHEL / CentOS / Scientific.) Durch ein ordnungsgemäßes Neuladen werden vorhandene Sitzungen nicht gelöscht.
- Versuchen Sie erneut, sich zu authentifizieren.
- Stellen Sie fest, wohin Ihre Authentifizierungsprotokolle gehen, und lesen Sie sie. (IIRC,
/var/log/auth.logauf Debian-basierten Distributionen; /var/log/secureauf RHEL / CentOS / Scientific.)
Es ist viel einfacher herauszufinden, was mit der Debug-Ausgabe, die Dateisystem-Berechtigungsfehler enthält, falsch läuft. Denken Sie daran, die Änderung rückgängig zu machen, /etc/ssh/sshd_configwenn Sie fertig sind!