Jak nie zostało to wyraźnie wspomniane, sshd jest domyślnie bardzo restrykcyjne w zakresie uprawnień do authorized_keys
plików. Tak więc, jeśli authorized_keys
jest zapisywalny dla każdego innego niż użytkownik lub może być zapisany przez kogoś innego niż użytkownik, odmówi uwierzytelnienia (chyba że sshd jest skonfigurowane z StrictModes no
)
Rozumiem przez „można nadawać się do zapisu” jest to, że jeśli którykolwiek z katalogów nadrzędnych jest zapisywalny dla kogokolwiek innego niż użytkownik, użytkownicy uprawnieni do modyfikowania tych katalogów mogą zacząć modyfikować uprawnienia w taki sposób, aby mogli modyfikować / zastępować klucze autoryzowane.
Ponadto, jeśli /home/username/.ssh
katalog nie jest własnością użytkownika, a zatem użytkownik nie ma uprawnień do odczytu klucza, możesz napotkać problemy:
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
Pamiętaj, że Jane nie jest właścicielem .ssh
pliku. Napraw to przez
chown -R jane:jane /home/jane/.ssh
Tego rodzaju problemy z uprawnieniami systemu plików nie pojawią się ssh -v
, a nawet nie pojawią się w logach sshd (!), Dopóki nie ustawisz poziomu dziennika na DEBUG.
- Edit
/etc/ssh/sshd_config
. Chcesz LogLevel DEBUG
gdzieś tam czytać . Załaduj ponownie serwer SSH za pomocą mechanizmu dostarczonego przez dystrybucję. ( service sshd reload
w RHEL / CentOS / Scientific.) Pełen wdzięku przeładowanie nie spowoduje porzucenia istniejących sesji.
- Spróbuj uwierzytelnić ponownie.
- Dowiedz się, gdzie idą dzienniki instalacji uwierzytelniania i przeczytaj je. (IIRC,
/var/log/auth.log
na dystrybucjach opartych na Debianie; /var/log/secure
na RHEL / CentOS / Scientific.)
Znacznie łatwiej jest ustalić, co się dzieje z wyjściem debugowania, które obejmuje błędy uprawnień systemu plików. Pamiętaj, aby po zakończeniu przywrócić zmianę /etc/ssh/sshd_config
!