Da dies nicht explizit erwähnt wurde, ist sshd bei den Berechtigungen für die authorized_keys
Dateien standardmäßig sehr streng . Also, wenn authorized_keys
ist 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/.ssh
Verzeichnis 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 .ssh
Datei nicht besitzt. Beheben Sie dies über
chown -R jane:jane /home/jane/.ssh
Diese Art von Dateisystem-Berechtigungsproblemen wird nicht ssh -v
angezeigt, 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 DEBUG
dort irgendwo liest . Laden Sie den SSH-Server mithilfe des von der Distribution bereitgestellten Mechanismus neu. ( service sshd reload
unter 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.log
auf Debian-basierten Distributionen; /var/log/secure
auf 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_config
wenn Sie fertig sind!