Das Problem
Auf einem CentOS/RHEL 7-Server funktioniert passwortloses SSH für lokale Benutzer nicht. Dieser Server verwendet LDAP und alle LDAP-Benutzerzugriffe funktionieren einwandfrei. Wenn wir einen lokalen Benutzer in /etc/security/access.conf hinzufügen, gibt es kein Problem mit der Verbindung. Das Hinzufügen des Benutzernamens in der Datei /etc/security/access.conf ist jedoch möglicherweise keine akzeptable Problemumgehung, abhängig von den internen Sicherheitsrichtlinien eines Kunden.
Ursache
Dieses Problem tritt auf, weil für lokale Benutzer auf dem System, das LDAP als primäre Authentifizierungsmethode verwendet, keine Berechtigungen festgelegt sind. Der folgende Fehler wird in der sicheren Protokolldatei angezeigt:
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] >>>>
Die Lösung
1. Bearbeiten Sie die /etc/sshd/sshd_conf und fügen Sie die folgende Zeile hinzu:
# vi /etc/sshd/sshd_conf AllowUsers username
Ersetzen Sie durch den korrekten Benutzernamen und speichern Sie die Datei.
2. Bearbeiten Sie /etc/pam.d/sshd Datei und fügen Sie die folgende Zeile hinzu:
# vi /etc/pam.d/sshd account sufficient pam_localuser.so
Speichern Sie die Datei.
3. Starten Sie sowohl den sshd-Dienst als auch den sssd-Dienst neu.
# systemctl sshd restart # systemctl sssd restart