6.5. Configuration de l'accès SSH à l'aide de l'authentification par carte à puce
Les connexions SSH nécessitent une authentification. Vous pouvez utiliser un mot de passe ou un certificat. Cette section décrit la configuration nécessaire pour activer l'authentification à l'aide d'un certificat stocké sur une carte à puce
Pour plus de détails sur la configuration des cartes à puce avec authselect
, voir Configuration des cartes à puce avec authselect.
Conditions préalables
- La carte à puce contient votre certificat et votre clé privée.
- La carte est insérée dans le lecteur et connectée à l'ordinateur.
- SSSD est installé et configuré.
- Votre nom d'utilisateur correspond au nom commun (CN) ou à l'ID utilisateur (UID) figurant dans le SUJET du certificat.
Le service
pcscd
est en cours d'exécution sur votre machine locale.Pour plus de détails, voir Installation des outils de gestion et d'utilisation des cartes à puce.
Procédure
Créez un nouveau répertoire pour les clés SSH dans le répertoire personnel de l'utilisateur qui utilise l'authentification par carte à puce :
# mkdir /home/example.user/.ssh
Exécutez la commande
ssh-keygen -D
avec la bibliothèqueopensc
pour récupérer la clé publique existante associée à la clé privée de la carte à puce, et ajoutez-la à la listeauthorized_keys
du répertoire des clés SSH de l'utilisateur pour activer l'accès SSH avec l'authentification par carte à puce.# ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so >> ~exemple.user/.ssh/authorized_keys
SSH nécessite la configuration des droits d'accès au répertoire
/.ssh
et au fichierauthorized_keys
. Pour définir ou modifier les droits d'accès, entrez :# chown -R example.user:example.user ~example.user/.ssh/ # chmod 700 ~example.user/.ssh/ # chmod 600 ~example.user/.ssh/authorized_keys
En option, afficher les touches :
# cat ~example.user/.ssh/authorized_keys
Le terminal affiche les touches.
Vérifiez que l'authentification par carte à puce est activée dans le fichier
/etc/sssd/sssd.conf
:Dans la section
[pam]
, activez le module d'authentification par certificat pam :pam_cert_auth = True
Si le fichier
sssd.conf
n'a pas encore été créé, vous pouvez créer la configuration fonctionnelle minimale en copiant le script suivant sur la ligne de commande :# cat > /etc/sssd/sssd.conf <<EOF [sssd] services = nss, pam domains = shadowutils [nss] [pam] pam_cert_auth = True [domain/shadowutils] id_provider = files EOF
Pour utiliser les clés SSH, configurez l'authentification avec la commande
authselect
:# authselect select sssd with-smartcard --force
Vous pouvez maintenant vérifier l'accès SSH à l'aide de la commande suivante :
# ssh -I /usr/lib64/opensc-pkcs11.so -l example.user localhost hostname
Si la configuration est réussie, vous êtes invité à saisir le code PIN de la carte à puce.
La configuration fonctionne désormais localement. Vous pouvez maintenant copier la clé publique et la distribuer dans les fichiers authorized_keys
situés sur tous les serveurs sur lesquels vous souhaitez utiliser SSH.