Řešení 1:
Ano, SELinux je pravděpodobně příčinou. .ssh
dir je pravděpodobně špatně označen. Podívejte se na /var/log/audit/audit.log
. Mělo by být označeno ssh_home_t
. Zkontrolujte pomocí ls -laZ
. Spusťte restorecon -r -vv /root/.ssh
v případě potřeby.
Řešení 2:
Měl jsem stejný problém. V mém případě restorecon a chcon nefungovaly.
Nechtěl jsem zakázat selinux. Po spoustě výzkumu jsem nakonec usoudil, že to bylo proto, že můj domovský adresář byl připojen odjinud (NFS). Našel jsem toto hlášení o chybě, které mi napovědělo.
Běžel jsem:
> getsebool use_nfs_home_dirs
use_nfs_home_dirs --> off
pro potvrzení, že use_nfs_home_dirs bylo vypnuto a poté:
sudo setsebool -P use_nfs_home_dirs 1
jej zapněte.
Nyní mohu ssh na svůj počítač pomocí svého klíče a bez zadávání hesla. Přepínání boolean use_home_nfs_dirs mi stačilo.
Řešení 3:
Chcete-li přidat k odpovědi Marka Wagnera, pokud používáte vlastní cestu domovského adresáře (tj. ne /home
), musíte se ujistit, že jste nastavili kontext zabezpečení SELinux. Chcete-li tak učinit, pokud máte domovské adresáře uživatelů například v /myhome
, spustit:
semanage fcontext -a -e /home /myhome
restorecon -vR /myhome