Beim Versuch, für einen Benutzer eine Verbindung per SSH mit einem Server herzustellen, tritt ein Fehler auf. Das Home-Verzeichnis dieses Benutzers befindet sich in /opt, mit einem .ssh-Verzeichnis (Berechtigungen: 700) und einer authorized_keys-Datei, die den öffentlichen Schlüssel enthält. Es funktioniert mit anderen Benutzern, deren Home-Verzeichnisse sich in /home befinden, und mit demselben RSA-Schlüssel kann ich mich als anderer Benutzer verbinden. In /var/log/secure erhalte ich:
Apr 8 14:48:22 myserver sshd[338949]: pam_sss(sshd:account): Access denied for user myuser: 6 (Permission denied)
Apr 8 14:48:22 myserver sshd[338949]: fatal: Access denied for user myuser by PAM account configuration [preauth]
Bei Verwendung von ssh -vvv lauten die letzten Zeilen:
debug1: Server accepts key: pkalg rsa-sha2-512 blen 535
debug2: input_userauth_pk_ok: fp SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
debug3: sign_and_send_pubkey: RSA SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
debug3: send packet: type 50
Authentication failed.
Wenn ich mich als anderer Benutzer mit demselben Schlüssel mit diesem Server verbinde, funktioniert es. Der einzige Unterschied besteht darin, dass sich das Home-Verzeichnis in /opt statt in /home befindet. Und dieser Benutzer hat einen Unterstrich in seinem Anmeldenamen. Ist Ihnen diese Art von Situation schon einmal begegnet?
[BEARBEITEN] Zusätzliche Informationen:
SELinux ist deaktiviert
[root@myserver ~]# getenforce
Disabled
[myuser@myserver ~]$ ls -la /opt/myuser/
drwx------ 2 myuser myuser 80 Apr 8 14:46 .ssh
[myuser@myserver ~]# ls -l /opt/myuser/.ssh/authorized_keys
-rw------- 1 myuser myuser 1131 Apr 8 14:46 /opt/myuser/.ssh/authorized_keys
[root@myserver ~]# namei -l /opt/myuser/.ssh/authorized_keys
f: /opt/myuser/.ssh/authorized_keys
dr-xr-xr-x root root /
drwxr-xr-x root root opt
drwx------ myuser myuser myuser
drwx------ myuser myuser .ssh
-rw------- myuser myuser authorized_keys
[root@myserver ~]# grep -v ^# /etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
SyslogFacility AUTHPRIV
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials no
UsePAM yes
X11Forwarding yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
Subsystem sftp /usr/libexec/openssh/sftp-server
[root@myserver ~]# cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
Außerdem ist die LDAP-Authentifizierung über SSDD aktiviert.
Antwort1
Wenn die LDAP-Authentifizierung aktiviert ist und der Zugriff für diesen bestimmten Benutzer verweigert wird, bedeutet dies, dass dem Benutzer kein Zugriff in LDAP auf diesen Server gewährt wurde.
Sie können die /etc/sssd/sssd.conf
für überprüfenerlaubte_BenutzerUndzulässige_Gruppenund fügen Sie dann den Benutzernamen entweder als Eintrag der 'allowed_users' oder in der LDAP-Gruppe hinzu, die in den 'allowed_groups' angegeben ist.