Gestion des clés SSH

Fusion Directory permet de gérer simplement les clés publiques SSH pour chaque utilisateur. Vos différents serveurs UNIX peuvent ensuite être configuré pour récupérer de façon dynamique ces clés, au lieu de regarder dans le fichier ~/.ssh/authorized_keys.

L'avantage avec LDAP, c'est que le déploiement et la révocation sur un grand nombre de machine est instantanée.

Plugins nécessaires

Il est nécessaire d'installer le plugin ssh:

yum install fusiondirectory-plugin-ssh

Configuration OpenLDAP

Le schéma openssh-lpk doit être chargé. Si vous utilisez le format slapd.conf:

[...] include /etc/openldap/schema/fusiondirectory/openssh-lpk.schema [...] # Access to SSH public keys access to attrs=sshPublicKey by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com peername.ip="127.0.0.1" read by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com peername.ip="[::1]" read by dn=cn=ssh,ou=DSA,dc=firewall-services,dc=com ssf=256 read by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" peername.ip="127.0.0.1" write by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" peername.ip="[::1]" write by group.exact="cn=admins,ou=Groups,dc=firewall-services,dc=com" ssf=256 write by self peername.ip="127.0.0.1" write by self peername.ip="[::1]" write by self ssf=256 write by * none [...]

Ajout d'une clé SSH

Depuis l'interface de gestion des utilisateurs dans Fusion Directory, un nouvel onglet est disponible, permettant d'importer vos clés publiques (en général, le fichier id_rsa.pub):

Gestion des clés SSH

Configuration des clients

Il ne reste plus qu'à configurer vos différentes machines pour venir chercher les clés SSH dans l'annuaire au lieu des fichier ~/.ssh/authorized_keys. Pour cela, il faut installer openssh-ldap

yum install openssh-ldap

Puis il faut configurer le module openssh-ldap en lui indiquant comment récupérer les clés dans l'annuaire. Cette configuration est dans /etc/ssh/ldap.conf

uri ldap://ldap.firewall-services.com binddn cn=ssh,ou=DSA,dc=firewall-services,dc=com bindpw dsa_p@ssw0rd base ou=People,dc=firewall-services.com,dc=com scope one ssl start_tls

On va également créer un compte local qui sera dédié à cette fonction:

useradd -M -r -s /bin/false ldapsshkey chown root:ldapsshkey /etc/ssh/ldap.conf chmod 640 /etc/ssh/ldap.conf

Il ne reste plus qu'à modifier la configuration principale du service sshd en ajoutant ces deux directives:

[...] AuthorizedKeysCommand /usr/libexec/openssh/ssh-ldap-wrapper AuthorizedKeysCommandRunAs ldapsshkey [...]