Sur un Mac, ouvrez le Terminal et exécutez ssh-add -l. Cette commande liste les empreintes numériques et les commentaires des identités disponibles via l’agent SSH connecté à cette session de Terminal ; elle n’affiche pas le contenu des clés privées. Si l’agent ne possède aucune identité, la commande le signale. Considérez cela comme une vérification de la connexion actuelle à l’agent, et non comme un inventaire complet des clés stockées sur votre Mac.
Lister les identités dans l’agent actuel
Dans le Terminal, saisissez :
ssh-add -l
L’option -l liste les empreintes numériques des identités représentées par l’agent. Le format d’empreinte par défaut d’OpenSSH est SHA-256. Chaque résultat comprend généralement une taille de clé, une empreinte numérique, un commentaire de clé et un algorithme ; le commentaire peut aider à identifier la clé, mais il s’agit d’un texte fourni par l’utilisateur et il ne constitue pas une preuve du compte ou du serveur qui l’acceptera. Manuel OpenSSH de ssh-add(1)
Cette commande demande uniquement une liste. Elle n’ajoute ni ne supprime d’identités. Évitez ssh-add -D et ssh-add -d pendant la vérification : ces options suppriment des identités. Évitez également ssh-add -L si votre objectif est d’en divulguer le moins possible. Cette option affiche les paramètres de clé publique des identités présentes dans l’agent. Une clé publique n’est pas une clé privée, mais elle constitue une information plus identificatrice qu’une simple empreinte. Manuel OpenSSH de ssh-add(1)
Comprendre une liste vide ou une erreur de connexion
Si la sortie indique que l’agent ne possède aucune identité, l’agent joint par ce Terminal n’en a aucune à signaler. Cela ne prouve pas que vous ne disposez d’aucune clé SSH sur le disque, dans un authentificateur matériel ou ailleurs. Cela ne prouve pas non plus qu’une autre application ou fenêtre de Terminal utilise le même agent. OpenSSH s’appuie sur la variable d’environnement SSH_AUTH_SOCK pour localiser l’agent, de sorte que des sessions distinctes peuvent être connectées différemment. Manuel OpenSSH de ssh-add(1)
Si vous voyez plutôt une erreur telle que « Could not open a connection to your authentication agent », le shell actuel n’a pas pu interroger le socket de l’agent. L’affichage n’a pas permis d’établir si une autre session possède des identités. Réexécutez ssh-add -l dans le Terminal ou le shell que vous utilisez pour SSH ; ne démarrez pas un nouvel agent juste pour vérifier, car cela pourrait attribuer à ce shell un agent différent et vide. Si la commande échoue toujours, vérifiez si l’environnement est configuré pour fournir SSH_AUTH_SOCK avec printf '%s\n' "$SSH_AUTH_SOCK". Cela affiche le chemin du socket, et non une clé, mais cela ne vérifie pas en soi que le socket est utilisable.
Distinguer l’agent du trousseau d’accès de macOS
Une identité SSH chargée dans un agent et une phrase de passe stockée dans le trousseau d’accès sont deux choses différentes. Apple documente UseKeychain comme une option de configuration SSH permettant de stocker la phrase de passe d’une clé, et AddKeysToAgent comme une option qui charge une clé dans l’agent lorsque SSH l’utilise. Ainsi, une phrase de passe présente dans le trousseau ne signifie pas à elle seule que l’identité apparaît actuellement dans ssh-add -l ; une identité peut être ajoutée à l’agent ultérieurement, par exemple lors d’une connexion SSH. Note technique Apple TN2449
Si vous devez inspecter les éléments du trousseau, Trousseaux d’accès peut afficher des informations sur les clés et les certificats stockés dans un trousseau sélectionné. Il s’agit d’une inspection distincte du listage de l’agent actif, et elle ne doit pas être utilisée pour déduire quelles identités ce Terminal peut actuellement proposer. Assistance Apple : Afficher les informations stockées dans un trousseau d’accès sur Mac
Ce que cette vérification peut vous indiquer
Utilisez ssh-add -l lorsque vous avez besoin d’un aperçu à faible divulgation des identités disponibles pour l’agent dans cette session de Terminal. Comparez l’empreinte numérique avec un enregistrement de confiance si vous devez reconnaître une clé particulière. La liste n’affiche pas le contenu des clés privées, n’identifie pas chaque clé sur l’ordinateur, ne confirme pas qu’un serveur distant autorise une clé, et ne garantit pas qu’une commande SSH ultérieure utilisera une identité listée ; la configuration SSH et le contexte de connexion affectent également l’authentification.
Sources
ssh-add(1) - Pages de manuel OpenBSD — OpenBSD
Note technique TN2449 : Mises à jour d’OpenSSH dans macOS 10.12.2 — Apple Developer
Afficher les informations stockées dans un trousseau d’accès sur Mac — Assistance Apple