SSSD, PAM, NSS und Kerberos-Domänen
In grossen IT-Umgebungen ist ein zentraler Verzeichnisdienst unverzichtbar, um Benutzeridentitäten und Berechtigungen konsistent und zentral verwalten zu können – besonders in heterogenen Netzen mit Windows-, Unix- und Linux-Systemen. Während Microsofts Active Directory (AD) auf Windows-Servern den dominierenden Standard darstellt, setzen viele Linux-Distributionen heute auf den System Security Services Daemon (SSSD) aus dem FreeIPA-Projekt, um sich komfortabel und sicher in AD-Domänen einzubinden. Darüber hinaus ermöglicht SSSD auch, Daten aus anderen LDAP-Infrastrukturen (etwa einem reinen OpenLDAP-Server) parallel zu beziehen.
Zentrale Verzeichnisdienste
Ein Verzeichnisdienst (Directory Service) bietet eine zentrale Anlaufstelle für:
Benutzerkonten (User Objects),
Gruppen und
Rollen sowie
Authentifizierungs- und Autorisierungsdaten.
In Windows-Netzwerken liefert Active Directory (AD) diese Funktionalität von Haus aus: Jeder Domain Controller ist gleichzeitig ein Kerberos-KDC (Key Distribution Center) und ein LDAP-Server. Unter Linux-Systemen liegen Benutzer- und Gruppeninformationen traditionell in lokalen Dateien wie /etc/passwd
, /etc/group
oder /etc/shadow
. Ohne zentrale Synchronisation würde also jede Änderung an einem Benutzerkonto auf jedem System einzeln vorgenommen werden müssen – ein Alptraum in grossen Umgebungen. Unter Linux ermöglichen verschiedene Module wie NSS, PAM und SSD, Daten wie Benutzer, Gruppen, Passwortverifikation usw. aus zentralen Verzeichnisdiensten zu beziehen, indem man passende Bibliotheken installiert und nur wenige Konfigurationsdateien anpasst.
NSS
NSS (Name Service Switch) ist ein Framework, über das Anwendungen und das Betriebssystem Benutzernamen, Gruppen, Hostnamen, Netzwerkdienste und mehr abfragen können. Es ermöglicht beispielsweise auch, einem Nutzernamen wie „alice“ die zugehörige, im Unix-typischen Format vorliegende User-ID (UID) zuzuordnen. Standardmässig liest NSS seine Daten aus lokalen Dateien (z. B. /etc/passwd
, /etc/group
). In /etc/nsswitch.conf
steht für jede „Map“ (z. B. passwd
, group
, hosts
) eine Zeile, die angibt, welche Quelle(n) abgefragt werden sollen. Die Datei wird in der Regel nicht (mehr) manuell editiert, sondern durch Tools wie authselect
angepasst.
passwd: files sss systemd
group: files sss systemd
netgroup: sss files
automount: sss files
services: sss files
# sudoers: files sss # if FreeIPA joined
shadow: files
hosts: files dns myhostname
aliases: files
ethers: files
gshadow: files
networks: files dns
protocols: files
publickey: files
rpc: files
Durch Zeilen wie passwd: files sss systemd
wird dem System mitgeteilt, zuerst in lokalen Dateien nach Benutzerinformationen zu suchen und, wenn dort keine Übereinstimmung gefunden wird, die Anfrage an SSSD (libnss_sss.so
) weiterzuleiten. SSSD wiederum kennt je nach Konfiguration die Remote-Verzeichnisdienste (AD-Provider, LDAP-Provider).
Dabei werden Gruppen zusammengeführt, allerdings nur, wenn GroupName und GID übereinstimmen (siehe https://sourceware.org/glibc/wiki/Proposals/GroupMerging).
PAM
PAM (Pluggable Authentication Modules) kümmert sich um alles rund um die Authentifizierung: von der Passwortprüfung bis hin zur Entscheidung, ob eine Anmeldung überhaupt erlaubt wird. Anhand von Dateien in /etc/pam.d/
(z. B. /etc/pam.d/system-auth
oder /etc/pam.d/sshd
) legt man fest, in welcher Reihenfolge und mit welchen Modulen die Authentifizierung abläuft.
Beim Einsatz von SSSD muss PAM so konfiguriert sein, dass SSSD (mit pam_sss.so
) die Passwörter gegen AD oder LDAP validieren darf. In modernen Distributionen erledigt ein Tool wie authselect
(früher: authconfig
) das Einbinden des SSSD-PAM-Moduls automatisch. Beispiel:
# Generated by authselect on Thu Jun 5 09:21:24 2025
# Do not modify this file manually.
# type control module-path module-arguments
auth required pam_env.so
auth required pam_faildelay.so delay=2000000
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth [default=1 ignore=ignore success=ok] pam_localuser.so
auth sufficient pam_unix.so nullok
auth [default=1 ignore=ignore success=ok] pam_usertype.so isregular
auth sufficient pam_sss.so forward_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_usertype.so issystem
account [default=bad success=ok user_unknown=ignore] pam_sss.so
account required pam_permit.so
password requisite pam_pwquality.so local_users_only
password sufficient pam_unix.so sha512 shadow nullok use_authtok
password [success=1 default=ignore] pam_localuser.so
password sufficient pam_sss.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
-session optional pam_systemd.so
session optional pam_oddjob_mkhomedir.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_sss.so
Die erste Spalte „service“ wird durch den Dateinamen in /etc/pam.d/
festgelegt (und ist daher hier nicht aufgeführt). Die Beginnt „type“ mit einem Minus („-„), wird PAM das Logging unterbinden und einfach fortfahren, falls das Modul nicht installiert ist und daher nicht gefunden werden kann.
Bedeutung von required
:
Ein Modul mit dem Flag
required
muss erfolgreich durchlaufen werden. Wenn das Modul erfolgreich ist, wird sofort mit dem nächsten Modul in derselben Stufe weitergemacht. Wenn das Modul fehlschlägt, wird zwar sofort zum nächsten Modul gesprungen, aber PAM merkt sich, dass ein Fehler aufgetreten ist.Erst nach allen Modulen dieser Stufe entscheidet PAM: Wenn irgendein required-Modul fehlgeschlagen ist, geben alle Control-Flags zusammen am Ende ein Gesamt-Failure zurück – sprich: der gesamte Authentifizierungsversuch schlägt fehl. Auch wenn ein späteres Modul vielleicht Erfolg hat, bleibt der frühere Fehler erhalten, weil required keine Möglichkeit bietet, einen Fehler zu ignorieren.
Bedeutung von requisite
:
Funktional sehr ähnlich zu
required
, mit dem Unterschied, dass es im Falle eines Fehlers sofort das gesamte PAM-Verfahren abbricht und ein Fehler zurückgegeben wird; es werden keine späteren Module in derselben Stufe mehr ausgeführt. Wird typischerweise bei Passwortrichtlinien verwendet.
Bedeutung von sufficient
:
PAM prüft zunächst, ob bis zu diesem Zeitpunkt kein
required
- oderrequisite
-Modul vorher versagt hat. Wenn es keinen vorangegangenen Fehler gab, gibt PAM sofort Erfolg für die gesamte Stufe zurück und überspringt alle nachfolgenden Module in dieser Stufe. Gäbe es hingegen schon einenrequired
-Fehler, wird das bereits als endgültiger Fehler im Hinterkopf behalten, und dassufficient
-Modul wird quasi ignoriert (es ändert nichts am bereits vorhandenen Fehlerzustand).Beispiel: Wenn kein vorangehender „harter“ Fehler geschehen ist und
auth sufficient pam_unix.so nullok
(lokale Unix-Passwortdatenbank) erfolgreich authentifiziert, dann sind wir fertig und überspringen andere Module.
Bedeutung von optional
:
Ein
optional
-Modul kann nur dann eine Authentifizierung beeinflussen, wenn alle anderen Module in dieser Stufe entweder gar nicht angewendet wurden oder neutral sind (z. B. keinesufficient
-Erfolge, keinerequired
-Fehler). Wird meist zur Protokollierung, Key-Init oder Aufräumarbeiten, die nicht blockieren dürfen, verwendet.Beispiel:
session optional pam_oddjob_mkhomedir.so
- selbst wenn das beim Erstellen eines Home-Verzeichnisses fehlschägt, soll das normale Login-Verhalten nicht direkt abgebrochen werden, solange keine anderen Module versagen.
Schaut man sich den ersten „auth“-Block an, ergibt sich also:
pam_env.so (required)
: Lädt Umgebungsvariablen. Ein Fehler wird intern notiert, aber es geht trotzdem weiter zum nächsten Modul.pam_faildelay.so (required)
: Setzt eine Verzögerung bei Fehlschlägen. Auch hier wird ein möglicher Fehler nur notiert, und die Verarbeitung springt zum nächsten Modul.pam_usertype.so isregular ([default=1 ignore=ignore success=ok])
: Wenn der Nutzer ein regulärer User ist (Erfolg), wird das nächste Modul übersprungen; ansonsten wird das Ergebnis ignoriert und normal weitergemacht.pam_localuser.so ([default=1 ignore=ignore success=ok])
: Wenn der Nutzer lokal bekannt ist (Erfolg), wird das nächste Modul übersprungen; ansonsten ignoriert und weiter.pam_unix.so nullok (sufficient)
: Verwendet die lokale/etc/shadow
-Authentifizierung. Schlägt sie an dieser Stelle an und es gab bislang keinerequired
-Fehler, endet die Auth-Stufe sofort. Bei Fehlschlag geht es weiter.pam_usertype.so isregular ([default=1 ignore=ignore success=ok])
: Gleiche Logik wie zuvor: Bei Erfolg wird das nächste Modul übersprungen, bei Fehler ignoriert und weiter.pam_sss.so forward_pass (sufficient)
: Authentifiziert ggf. über SSSD/LDAP. Erfolg führt (sofern kein vorheriger „required“-Fehler) sofort zum positiven Stufenende; sonst wird weitergeprüft.pam_deny.so (required)
: Wird nur erreicht, wenn keine dersufficient
-Methoden erfolgreich war. Gibt immer einen Fehler zurück, markiert das Auth-Ergebnis als endgültig fehlgeschlagen und verhindert so den Login.
SSSD
SSSD (System Security Services Daemon) ist eine Client-Software aus dem Fedora/FreeIPA-Umfeld, das sich zum Ziel gesetzt hat, Linux-Systeme unkompliziert an verschiedene Identity-Backends (AD, LDAP, FreeIPA, IPA, 389-DS usw.) anzubinden. SSSD bündelt NSS und PAM in einem Daemon, der nicht nur Daten aus AD oder LDAP bezieht, sondern sie zusätzlich lokal cached, um Performance, Offline-Fähigkeit und Redundanz zu verbessern. Dabei übernimmt SSSD folgende Aufgaben:
NSS-Provider (
libnss_sss.so
): Sichert, dassgetent passwd ...
,getent group ...
etc. Anfragen an das Remote-Verzeichnis (z.B. AD) richten, sobald lokal keine Daten gefunden werden.PAM-Provider (
pam_sss.so
): Leitet Authentifizierungs- und Passwort-Änderungs-Anfragen an das Remote-KDC/LDAP weiter.Caching: SSSD speichert Benutzer-, Gruppen- und Passwort-Hashes (nicht Klartext!) lokal im Cache, um Leistung und Offline-Fähigkeit zu verbessern. Melden sich Benutzer an, deren Daten bereits im Cache vorhanden sind, genügt der lokale Cache.
Offline-Login: Fällt die Netzwerkverbindung zum Verzeichnisdienst aus, können sich Benutzer, die sich mindestens einmal erfolgreich angemeldet haben, weiter anmelden — ohne spürbare Timeouts.
Multi-Domain und Multi-Provider: In einer einzigen SSSD-Konfiguration (Datei
/etc/sssd/sssd.conf
) lassen sich mehrere Domains/Erscheinungsbäume parallel ansprechen — z. B. ein AD-Domain, ein reines OpenLDAP-Schema und sogar ein IPA-Server. Jeder „Domain-Abschnitt“ in dersssd.conf
kann unterschiedliche Provider (AD, LDAP, IPA, etc.) verwenden.Sicherheit (TLS, SASL/GSSAPI): Zur Verschlüsselung und Authentifizierung beim LDAP-Binding beherrscht SSSD StartTLS, LDAPS und SASL/GSSAPI (Kerberos). Letzteres ist der Standard im AD-Universum, weil hier Kerberos-Tickets für Integrity und Confidentiality sorgen.
ID-Mapping: Der AD-Provider von SSSD kann Numerische IDs (UID/GID) automatisch aus der Windows-SID („Security Identifier“) errechnen, wenn keine POSIX-Attribute (uidNumber, gidNumber) im AD angelegt sind. Das senkt den administrativen Aufwand, vorausgesetzt, man will im AD keine POSIX-Attribute manuell pflegen.
SSSD 2.9+ (ab RHEL 9) beherrscht nun auch SAML/OIDC (weniger relevant für reine AD/LDAP-Setups, aber erwähnenswert).
Historisch: NIS
NIS (Network Information Service, früher „YP“ für Yellow Pages) ist ein altes Verfahren, um unter Unix-Systemen zentral Benutzer-, Gruppen- und Hostinformationen zu verwalten. Bei NIS betreibt man einen NIS-Server, der diese Daten als „Maps“ liefert, und bindet dann die Clients per ypbind
und libnss_yp.so
in den Namensdienst (NSS) ein. Authentifizierung läuft häufig über pam_unix
oder pam_krb5
, während die Account-Listen aus NIS gezogen werden. Schwachstellen wie unverschlüsselte Passwort-Übertragung, fehlende Rollenkonzepte und schlechte Skalierbarkeit haben dazu geführt, dass NIS und NIS+ (die proprietäre Fortsetzung von Sun) durch LDAP-basierte Directory-Services oder AD-Anbindungen mittels SSSD, aktiver Directory-Funktionalität und Kerberos abgelöst wurden. Für die zentrale Benutzer- und Gruppenverwaltung setzt man heute praktisch immer auf LDAP/SSSD-, FreeIPA- oder AD-basierte Lösungen.
Domänen-Join RHEL 9 > Windows AD
Client im Authorative DNS-Resolver des ADs anlegen.
Chrony installieren, konfigurieren und aktivieren. Der Pool oder die Peers sollten wenn möglich die gleichen sein, gegen die sich auch das AD synchronisiert - wenn möglich den AD-DC direkt verwenden.
dnf -y install chrony
systemctl enable --now chronyd
chronyc sources
Hostname des Clients korrekt konfigurieren:
hostnamectl set-hostname myclient.example.com
DNS des Clients korrekt konfigurieren. Aufpassen: Damit am Ende die richtigen DNS-Server abgefragt werden (siehe /etc/resolv.conf
), unbedingt alle vorhandenen Netzwerkkarten und die Default-Routen prüfen.
nmcli con show
nmcli con show eth0 | grep dns
nmcli con mod eth0 ipv4.ignore-auto-dns yes
nmcli con mod eth0 ipv4.dns-search "example.com"
nmcli con mod eth0 ipv4.dns "192.0.2.10"
nmcli con down eth0 && nmcli con up eth0
nmcli con show eth0 | grep dns
/etc/resolv.conf
kontrollieren.
Toolset installieren:
dnf -y install \
sssd \
sssd-ad \
sssd-tools \
realmd \
adcli \
oddjob \
oddjob-mkhomedir \
samba-common-tools \
krb5-workstation
Mit realm
lässt sich die Registrierung in Kerberos-Realms wie beispielsweise Active-Directory-Domains oder IPA-Domains sehr einfach verwalten. Zum Client passenden Realm und seine Fähigkeiten ermitteln:
# domain assigned through DHCP is used as a default
realm --verbose discover
# domain is specified
realm --verbose discover ad.example.com
Nachdem ein Realm ermittelt wurde, werden dessen Name, Typ und Fähigkeiten angezeigt.
Lokale Maschine für die Verwendung mit einem Realm konfigurieren (Domänen-Join):
realm --verbose join ad.example.com
Standardmässig verwendet realm
das „Administrator“-Konto der Domäne, um den Join anzufordern. Soll ein anderer Benutzer verwendet werden, kann dieser mit --user
angegeben werden. Eine andere Möglichkeit, einer Domäne beizutreten, ist die Verwendung eines Einmalpasswort-Tokens (OTP) über die Option --one-time-password
.
Das Kommando kümmert sich unter anderem um die Anpassung folgender Dateien:
/etc/authselect/authselect.conf
/etc/authselect/dconf-db
/etc/authselect/dconf-locks
/etc/authselect/fingerprint-auth
/etc/authselect/nsswitch.conf
/etc/authselect/password-auth
/etc/authselect/postlogin
/etc/authselect/smartcard-auth
/etc/authselect/system-auth
/etc/krb5.conf
/etc/krb5.keytab
/etc/sssd/sssd.conf
Ausserdem sorgt es dafür, dass SSSD automatisch und bei jedem Neustart aktiv ist (siehe systemctl status sssd
).
Bemerkung
In Konfigurationsdateien wie /etc/krb5.conf
werden Kerberos Realm-Namen grundsätzlich UPPERCASE angegeben (EXAMPLE.COM), Domain-Namen dagegen lowercase (example.com). Server-Software, die einen Kerberos-Realm implementiert, ist beispielsweise ein Microsoft Active Directory oder ein FreeIPA.
Nach einem erfolgreichen Beitritt kann die lokale Maschine entfernte Benutzer- und Gruppennamen aus dem Realm auflösen. Für Kerberos-Realms wird ein Computerkonto und ein Host-Keytab erstellt. Ein erfolgreicher Join sieht wie folgt aus:
* Resolving: _ldap._tcp.ad.example.com
* Resolving: ad.example.com
* Performing LDAP DSE lookup on: 192.168.121.22
* Performing LDAP DSE lookup on: 192.0.2.10
* Successfully discovered: example.com
Password for Administrator@EXAMPLE.COM:
* Required files: /usr/sbin/oddjobd, /usr/libexec/oddjob/mkhomedir, /usr/sbin/sssd, /usr/sbin/adcli
* LANG=C /usr/sbin/adcli join --verbose --domain example.com --domain-realm EXAMPLE.COM --domain-controller 192.168.121.22 --login-type user --login-ccache=/var/cache/realmd/realm-ad-kerberos-734P72
* Using domain name: example.com
* Calculated computer account name from fqdn: MYCLIENT
* Using domain realm: example.com
* Sending NetLogon ping to domain controller: 192.168.121.22
* Received NetLogon info from: ad.example.com
* Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-0PZnPn/krb5.d/adcli-krb5-conf-Sq4G2p
* Using GSS-SPNEGO for SASL bind
* Looked up short domain name: EXAMPLE
* Looked up domain SID: S-1-5-21-732525231-1764819708-261175322
* Received NetLogon info from: ad.example.com
* Using fully qualified name: myclient.example.com
* Using domain name: example.com
* Using computer account name: MYCLIENT
* Using domain realm: example.com
* Calculated computer account name from fqdn: MYCLIENT
* Generated 120 character computer password
* Using keytab: FILE:/etc/krb5.keytab
* A computer account for MYCLIENT$ does not exist
* Found well known computer container at: CN=Computers,DC=example,DC=com
* Calculated computer account: CN=MYCLIENT,CN=Computers,DC=example,DC=com
* Encryption type [16] not permitted.
* Encryption type [23] not permitted.
* Encryption type [3] not permitted.
* Encryption type [1] not permitted.
* Created computer account: CN=MYCLIENT,CN=Computers,DC=example,DC=com
* Trying to set computer password with Kerberos
* Set computer password
* Retrieved kvno '2' for computer account in directory: CN=MYCLIENT,CN=Computers,DC=example,DC=com
* Checking RestrictedKrbHost/myclient.example.com
* Added RestrictedKrbHost/myclient.example.com
* Checking RestrictedKrbHost/MYCLIENT
* Added RestrictedKrbHost/MYCLIENT
* Checking host/myclient.example.com
* Added host/myclient.example.com
* Checking host/MYCLIENT
* Added host/MYCLIENT
* Discovered which keytab salt to use
* Added the entries to the keytab: MYCLIENT$@EXAMPLE.COM: FILE:/etc/krb5.keytab
* Added the entries to the keytab: host/MYCLIENT@EXAMPLE.COM: FILE:/etc/krb5.keytab
* Added the entries to the keytab: host/myclient.example.com@EXAMPLE.COM: FILE:/etc/krb5.keytab
* Added the entries to the keytab: RestrictedKrbHost/MYCLIENT@EXAMPLE.COM: FILE:/etc/krb5.keytab
* Added the entries to the keytab: RestrictedKrbHost/myclient.example.com@EXAMPLE.COM: FILE:/etc/krb5.keytab
* /usr/bin/systemctl enable sssd.service
* /usr/bin/systemctl restart sssd.service
* /usr/bin/sh -c /usr/bin/authselect select sssd with-mkhomedir --force && /usr/bin/systemctl enable oddjobd.service && /usr/bin/systemctl start oddjobd.service
Backup stored at /var/lib/authselect/backups/2025-06-05-09-21-24.v6X1NO
Profile "sssd" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services
Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.
- with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module
is present and oddjobd service is enabled and active
- systemctl enable --now oddjobd.service
Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service → /usr/lib/systemd/system/oddjobd.service.
* Successfully enrolled machine in realm
PAM-Stack kontrollieren und schauen, welches PAM-Profil aktiv ist - dort sollte etwas wie sssd
und with-mkhomedir
stehen:
authselect current
Falls nicht:
authselect select sssd with-mkhomedir --force
Ein lokaler Login mit dem Domänen-Benutzer „alice“ sollte jetzt schon einwandfrei funktionieren:
getent passwd alice@example.com
groups alice@example.com
su - alice@example.com
Nach dem Join lässt sich beispielsweise auch direkt ein Kerberos-Ticket lösen:
KRB5_TRACE=/dev/stdout kinit administrator
Die Kerberos-Tickets aus dem Cache auflisten (AD-Benutzern wird beim Login automatisch ein Kerberos-Ticket ausgestellt):
klist
# List keys held in a keytab file
klist -k /etc/krb5.keytab
SSH
In /etc/sssd/sssd_config
schauen, mit welchem Benutzernamen sich der Benutzer anmelden muss. Ist use_fully_qualified_names
aktiv, muss der Benutzername alice@example.com
verwendet werden.
Wie sieht die Login-Policy auf dem Client aus? Wer darf sich anmelden?
realm list
login-policy: allow-permitted-logins
Die Login-Policy lässt sich mittels realm permit --all
(führt zu login-policy: allow-realm-logins
) und realm deny --all
(führt zu login-policy: deny-any-login
) überschreiben.
Best Practise:
realm deny --all
Benutzer „alice“ explizit freigeben:
realm permit alice@example.com
Das führt zur Login-Policy login-policy: allow-permitted-logins
.
Damit sich die Benutzer auch ohne SSH-Key anmelden können (der sonst bereits im Home-Verzeichnis liegen muss):
PasswordAuthentication yes
systemctl reload sshd
Anschliessend kann sich „alice“ anmelden (und verwendet dabei das Passwort aus dem AD):
ssh alice@example.com@myclient
Ein ssh-copy-id
legt den SSH-Public-Key in /home/alice@example.com/.ssh/authorized_keys
ab.
Fertig.
Soll aber der SSH-Key aus dem AD kommen, müssen SSSD und SSH passend konfiguriert werden. Zunächst den SSH-Key im AD beim Benutzer ablegen:
SnapIn „Active Directory Users and Computers“ > Menü „View > Advanced Features“ aktivieren
User öffnen und im Tab „attributeEditor“ im Feld „altSecuriyIdentities“ den SSH-Key ablegen
Dann:
services = nss, pam, ssh
[domain/example.com]
ldap_user_extra_attrs = altSecurityIdentities
ldap_user_ssh_public_key = altSecurityIdentities
SSSD-Cache löschen und restarten:
systemctl stop sssd && rm -rf /var/lib/sss/{db,mc}/* && systemctl start sssd
Achtung
Startet SSSD nach dem Editieren der Konfigurationsdatei nicht mehr, gilt:
chown root:root /etc/sssd/sssd.conf
chmod 600 /etc/sssd/sssd.conf
systemctl restart sssd
SSH konfigurieren:
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody
Jetzt ist der Login möglich. Der Befehl sss_ssh_authorizedkeys alice@example.com
zeigt den authorized_keys
des Benutzers an.
Troubleshooting
tail -f /var/log/sssd/sssd*log /var/log/secure /var/log/audit/audit.log
Built on 2025-07-14