Felhasználók SSH kulcsának tárolása az Active Directoryban SSH-hitelesítéshez

Amennyiben Linux szerverünk SSSD-n keresztül tagja egy Active Directory tartománynak, lehetőségünk van nem csak a normál jelszó alapú hitelesítésre, hanem kulcs alapúra is úgy, hogy az SSH kulcs az AD címtárban kerül tárolásra, így egy helyen lehetséges azt kezelni.

Ehhez az ssh kulcsot az altSecurityIdentities attribútumban tudjuk eltárolni. Ezután szükséges az SSSD-t úgy beállítani, hogy lekérje a felhasználó attribútumát, és utasítsa az OpenSSH-t, hogy az sss_ssh_authorizedkeys paranccsal keresse meg a felhasználó nyilvános kulcsát.

Megoldás

A cél eléréshez három helyen szükséges beállításokat eszközölni: AD-ban, valamint a Linux szerveren az SSSD és OpenSSH beállításaiban.

Active Directory Server

Engedélyezzük a “Advanced Features” funkciót a “Attribute Editor” eléréséhez

Keressük meg a szerkeszteni kívánt felhasználót, nyissuk meg a tulajdonságát, majd kattintsunk a “Attribute Editor” fülre. Ezen a fülön aztán keressük meg az altSecurityIdentities értéket, és nyissuk meg szerkesztésre, majd ide másoljuk be a felhasználó publikus SSH kulcsát.

SSSD

Az /etc/sssd/sssd.conf állományban a services paraméterhez ssh értéket adjuk hozzá:

services = nss, pam, ssh

Az ldap_user_extra_attrs és az ldap_user_ssh_public_key paraméterek hozzáadása az /etc/sssd/sssd.conf [domain] szakaszához.

[domain/example.com]
ldap_user_extra_attrs = altSecurityIdentities
ldap_user_ssh_public_key = altSecurityIdentities

Törölje az sssd gyorsítótárat és indítsa újra

systemctl stop sssd; rm -rf /var/lib/sss/{db,mc}/*; systemctl start sssd

OpenSSH

Adja hozzá az alábbi SSH paramétereket az /etc/ssh/sshd_config fájlhoz:

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser root

Indítsuk újra az SSH szervert

systemctl restart sshd

Debuggolás

Az Az sss_ssh_authorizedkeys parancs megmutatja a megadott felhasználó publikus SSH kulcsát:

# sss_ssh_authorizedkeys bob
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU3PmPi... bob@example.com