11 votes

Récupérer la phrase de passe de la clé privée SSH depuis le trousseau de clés

Après avoir effectué une mise à jour de MacOS, ssh m'a demandé ma phrase de passe ssh. J'ai complètement oublié la phrase de passe depuis que le trousseau de clés la gère.

Ce site réponse montre comment configurer le trousseau de clés pour reconnecter et supprimer mon besoin de saisir la phrase de passe lors de la connexion à un hôte. Après avoir suivi ces étapes, je peux m'authentifier sans connaître la phrase de passe de la clé privée, ce qui suggère que la phrase de passe est stockée dans le trousseau.

Cependant, je ne trouve pas la phrase de passe ssh dans le trousseau de clés. Existe-t-il un moyen de récupérer la phrase de passe de la clé ssh à partir du trousseau ?

Ce site question/réponse dit que le trousseau conserve les phrases de passe comme des éléments normaux du trousseau, mais je ne peux trouver qu'un seul élément après avoir recherché ssh et c'est un ancien élément pour ma clé id_rsa originale qui n'est plus utilisée.

19voto

Approach Points 176

Ouvrez Keychain Access et activez l'option Affichage > Afficher les éléments invisibles.

Alors vous devez chercher id_rsa ou "ssh".

7voto

Raghunath Points 11

Réponse courte : Oui, choisissez "Afficher les éléments invisibles" dans Keychain Access.

(A l'origine, cette réponse était incorrecte : "Il ne semble pas y avoir actuellement de moyen de récupérer la phrase de passe." Le reste de la réponse comparant la façon dont les phrases de passe des clés SSH sont stockées dans les trousseaux de clés sur les anciennes et les nouvelles versions de MacOS est conservé ici à titre de référence).

Dans Mac OS X 10.11 et antérieurs, les phrases de passe des clés SSH étaient stockées par ssh y ssh-add dans le trousseau de connexion de l'utilisateur, en utilisant les propriétés suivantes (pseudocode adapté de Apple OpenSSH-195.40.1 ) :

{
    kSecClass: kSecClassGenericPassword,
    kSecAttrAccount: pathToPrivateKey,
    kSecAttrLabel: "SSH: " + pathToPrivateKey,
    kSecAttrService: "SSH"
}

À partir de MacOS 10.12, la phrase de passe est interrogée et stockée avec des propriétés qui l'obligent à être stockée dans le trousseau "synchronisable" (les "éléments locaux" adossés à la base de données, également appelés "trousseau iCloud" s'ils sont activés), avec un accès contrôlé par un mot de passe. "Groupe d'accès" ; ssh ignorera les anciens éléments de votre trousseau de connexion. À partir de Apple OpenSSH 209 :

{
    kSecClass: kSecClassGenericPassword,
    kSecAttrAccount: pathToPrivateKey,
    kSecAttrLabel: "SSH: " + pathToPrivateKey,
    kSecAttrService: "OpenSSH",
    kSecAttrNoLegacy: TRUE,
    kSecAttrAccessGroup: "com.apple.ssh.passphrases"
}

Apple n'a pas activé le site security outil en ligne de commande pour accéder au contenu du trousseau synchronisable, et par défaut (sauf si vous sélectionnez "Afficher les éléments invisibles"), Keychain Access n'affiche pas non plus le contenu complet de celui-ci, même si l'élément du trousseau ssh n'est pas explicitement marqué comme invisible .

Si vous vouliez essayer d'obtenir le mot de passe sans utiliser Keychain Access, je ne pense pas qu'il serait simple ou peut-être même possible d'écrire un programme qui récupère la phrase de passe à partir du trousseau, puisque l'accès à celui-ci est contrôlé par la signature du code d'Apple.

Vous pouvez voir certains détails limités sur les phrases de passe stockées dans votre trousseau synchronisable en utilisant la fonction sqlite3 mais la plupart des champs intéressants, comme les étiquettes des articles, sont cryptés.

$ sqlite3 Library/Keychains/*/keychain-2.db "select rowid, datetime(mdat+978307200, 'unixepoch', 'localtime'), agrp from genp where agrp = 'com.apple.ssh.passphrases' order by mdat asc"  
45|2017-01-07 13:53:13|com.apple.ssh.passphrases
46|2017-01-08 23:59:25|com.apple.ssh.passphrases

4voto

heemayl Points 85741

MacOS 10.13.3 :

Ouvrez Keychain Access et activez l'option Affichage > Afficher les éléments invisibles.

Ensuite, vous devez rechercher id_rsa ou 'ssh'.

Cliquez pour révéler la phrase de passe. Vous devrez peut-être fournir votre mot de passe de connexion Mac à ce moment-là.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X