Solusi 1:
Ya, SELinux kemungkinan penyebabnya. .ssh
dir mungkin salah label. Lihat /var/log/audit/audit.log
. Itu harus diberi label ssh_home_t
. Periksa dengan ls -laZ
. Jalankan restorecon -r -vv /root/.ssh
jika perlu.
Solusi 2:
Saya memiliki masalah yang sama. Dalam kasus saya, restorecon dan chcon tidak berfungsi.
Saya tidak ingin menonaktifkan selinux. Setelah banyak penelitian, akhirnya saya menemukan itu karena direktori home saya dipasang dari tempat lain (NFS). Saya menemukan laporan bug ini yang memberi saya petunjuk.
Saya berlari:
> getsebool use_nfs_home_dirs
use_nfs_home_dirs --> off
untuk mengonfirmasi use_nfs_home_dirs dimatikan dan kemudian:
sudo setsebool -P use_nfs_home_dirs 1
untuk menyalakannya.
Sekarang saya dapat ssh ke mesin saya menggunakan kunci saya dan tanpa memasukkan kata sandi. Mengalihkan boolean use_home_nfs_dirs adalah apa yang diperlukan untuk saya.
Solusi 3:
Untuk menambahkan jawaban Mark Wagner, jika Anda menggunakan jalur direktori home kustom (yaitu bukan /home
), Anda perlu memastikan bahwa Anda telah menyetel konteks keamanan SELinux. Untuk melakukannya, jika Anda memiliki direktori home pengguna, misalnya, /myhome
, jalankan:
semanage fcontext -a -e /home /myhome
restorecon -vR /myhome