Seperti yang belum disebutkan secara eksplisit, sshd secara default sangat ketat pada izin untuk authorized_keysfile. Jadi, jika authorized_keysini ditulis bagi siapa pun selain pengguna atau dapat dibuat dapat ditulis oleh siapa pun selain pengguna, itu akan menolak untuk mengotentikasi (kecuali sshd dikonfigurasi dengan StrictModes no)
Apa yang saya maksud dengan "dapat dibuat dapat ditulis" adalah bahwa jika salah satu direktori induk dapat ditulisi untuk siapa pun selain pengguna, pengguna yang diizinkan untuk mengubah direktori tersebut dapat mulai memodifikasi izin sedemikian rupa sehingga mereka dapat memodifikasi / mengganti otor_keys.
Lebih jauh, jika /home/username/.sshdirektori tidak dimiliki oleh pengguna, dan dengan demikian pengguna tidak memiliki izin untuk membaca kunci Anda dapat mengalami masalah:
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
Perhatikan bahwa jane tidak memiliki .sshfile. Perbaiki ini melalui
chown -R jane:jane /home/jane/.ssh
Masalah izin sistem file semacam ini tidak akan muncul ssh -v, dan mereka bahkan tidak akan muncul di sshd log (!) Sampai Anda mengatur level log ke DEBUG.
- Edit
/etc/ssh/sshd_config. Anda ingin baris yang berbunyi LogLevel DEBUGdi sana di suatu tempat. Muat ulang server SSH menggunakan mekanisme yang disediakan oleh distro. ( service sshd reloaddi RHEL / CentOS / Scientific.) Muat ulang dengan anggun tidak akan membatalkan sesi yang ada.
- Coba autentikasi lagi.
- Cari tahu kemana perginya fasilitas autentikasi Anda dan bacalah. (IIRC,
/var/log/auth.logpada distro berbasis Debian; /var/log/securepada RHEL / CentOS / Scientific.)
Jauh lebih mudah untuk mengetahui apa yang salah dengan output debug yang mencakup kesalahan izin sistem file. Ingatlah untuk mengembalikan perubahan ke /etc/ssh/sshd_configsaat selesai!