El problema
En un servidor CentOS/RHEL 7, SSH sin contraseña para usuarios locales no funciona. Este servidor usa LDAP y todos los accesos de usuarios de LDAP funcionan bien. Si agregamos un usuario local en /etc/security/access.conf, entonces no hay problema con la conexión. Sin embargo, agregar el nombre de usuario en el archivo /etc/security/access.conf puede no ser una solución aceptable según las políticas de seguridad interna del cliente.
Causa raíz
Este problema ocurre porque no hay privilegios establecidos para los usuarios locales en el sistema que utiliza LDAP como método de autenticación principal. El siguiente error se verá en el archivo de registro seguro:
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 solución
1. Edite el /etc/sshd/sshd_conf y agregue la siguiente línea:
# vi /etc/sshd/sshd_conf AllowUsers username
Reemplace con el nombre de usuario correcto, luego guarde el archivo.
2. Edite el /etc/pam.d/sshd archivo y agregue la siguiente línea:
# vi /etc/pam.d/sshd account sufficient pam_localuser.so
Guarde el archivo.
3. Reinicie el servicio sshd y el servicio sssd.
# systemctl sshd restart # systemctl sssd restart