Seperti yang belum disebutkan secara eksplisit, sshd secara default sangat ketat pada izin untuk authorized_keys
file. Jadi, jika authorized_keys
ini 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/.ssh
direktori 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 .ssh
file. 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 DEBUG
di sana di suatu tempat. Muat ulang server SSH menggunakan mekanisme yang disediakan oleh distro. ( service sshd reload
di 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.log
pada distro berbasis Debian; /var/log/secure
pada 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_config
saat selesai!