Il problema
Su un server CentOS/RHEL 7, SSH senza password per gli utenti locali non funziona. Questo server utilizza LDAP e tutti gli accessi utente LDAP funzionano correttamente. Se aggiungiamo un utente locale in /etc/security/access.conf, non ci sono problemi con la connessione. Tuttavia, l'aggiunta del nome utente nel file /etc/security/access.conf potrebbe non essere una soluzione alternativa accettabile a seconda delle politiche di sicurezza interne del cliente.
Causa principale
Questo problema si verifica perché non sono stati impostati privilegi per gli utenti locali sul sistema che utilizza LDAP come metodo di autenticazione principale. Nel file di registro protetto verrà visualizzato il seguente errore:
Jul 31 04:05:43 hcusalpbidmbi1s sshd[25861]: pam_access(sshd:account): access denied for user `infbiftp' from `dm-bii-dev-01.am.health.ge.com' Jul 31 04:05:43 hcusalpbidmbi1s sshd[25861]: pam_sss(sshd:account): Access denied for user infbiftp: 10 (User not known to the underlying authentication module) >>>> Jul 31 04:05:43 hcusalpbidmbi1s sshd[25861]: fatal: Access denied for user infbiftp by PAM account configuration [preauth] >>>>
La soluzione
1. Modifica /etc/sshd/sshd_conf e aggiungi la seguente riga:
# vi /etc/sshd/sshd_conf AllowUsers username
Sostituisci con il nome utente corretto, quindi salva il file.
2. Modifica /etc/pam.d/sshd file e aggiungi la seguente riga:
# vi /etc/pam.d/sshd account sufficient pam_localuser.so
Salva il file.
3. Riavvia il servizio sshd e il servizio sssd.
# systemctl sshd restart # systemctl sssd restart