Le problème
Sur un serveur CentOS/RHEL 7, SSH sans mot de passe pour les utilisateurs locaux ne fonctionne pas. Ce serveur utilise LDAP et tous les accès utilisateur LDAP fonctionnent correctement. Si nous ajoutons un utilisateur local dans /etc/security/access.conf, il n'y a aucun problème avec la connexion. Cependant, l'ajout du nom d'utilisateur dans le fichier /etc/security/access.conf peut ne pas être une solution de contournement acceptable selon les politiques de sécurité internes du client.
Cause fondamentale
Ce problème se produit car aucun privilège n'est défini pour les utilisateurs locaux sur le système qui utilise LDAP comme méthode d'authentification principale. L'erreur suivante apparaîtra dans le fichier journal sécurisé :
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 solution
1. Modifiez le fichier /etc/sshd/sshd_conf et ajoutez la ligne suivante :
# vi /etc/sshd/sshd_conf AllowUsers username
Remplacez par le nom d'utilisateur correct, puis enregistrez le fichier.
2. Modifiez le fichier /etc/pam.d/sshd fichier et ajoutez la ligne suivante :
# vi /etc/pam.d/sshd account sufficient pam_localuser.so
Enregistrez le fichier.
3. Redémarrez le service sshd ainsi que le service sssd.
# systemctl sshd restart # systemctl sssd restart