Avant de commencer, il convient de clarifier quelques points :
- macOS vous permettra de stocker la clé privée Phrases de passe dans le trousseau de clés de macOS.
- ssh-agent (sur macOS ou n'importe quel système) contient l'option décrypté clé privée en mémoire .
La distinction est importante pour répondre à vos questions.
- Il semble qu'il y ait deux options : ssh-agent ou Keychain Access.
Pas exactement. Voir la clarification ci-dessus. Si vous utilisez le UseKeychain yes
dans votre ~/.ssh/config
alors tout programme se connectant à l ssh-agent
La prise de courant permettra ssh-agent
pour accéder au trousseau de clés afin de trouver la phrase de passe permettant de décrypter votre clé privée. Si vous également utiliser le AddKeysToAgent yes
cette clé décryptée sera stockée dans l'agent pour une utilisation ultérieure. Également utile pour voir une autre question connexe .
... Si vous avez besoin de la commodité de stocker temporairement des phrases de passe, quelle est la norme ?
Il n'y a (à ma connaissance) aucun moyen de faire en sorte que macOS stocke les mots de passe. temporairement . Cependant, il est possible d'avoir une solution partiellement satisfaisante pour obtenir presque le même effet -- voir la réponse à la question 3 ci-dessous.
- Comment puis-je identifier et effacer la phrase de passe de ma clé privée par défaut dans Keychain Access ? Je vois une clé privée sans nom, mais je ne veux pas la supprimer sans être sûr qu'il s'agit bien de ma clé SSH stockée.
Si vous ouvrez Keychain Access sur votre Mac, et que vous recherchez ssh
vous ne verrez probablement pas la phrase de passe de votre clé ssh. À partir de macOS Sierra (10.12), Apple a déplacé le trousseau de clés vers un autre trousseau. ssh
Les clés ont été stockées. Pour le voir, vous devez sélectionner "Affichage >> Afficher les éléments invisibles" et les entrées de la phrase de passe de la clé ssh seront visibles.
Il y a de fortes chances que la "clé privée sans nom" que vous avez vue soit une autre clé RSA (ou DSA).
- Quelle est la meilleure option si je veux effacer régulièrement toute phrase de passe de clé privée ? Je pourrais utiliser
ssh-add -D
sous une tâche cron.
Alors que vous pourriez mettre ssh-add -D
dans une tâche cron, et cela ferait probablement une partie de ce que vous voulez, cela ne supprimerait pas la Phrases de passe du porte-clés. Cela effacerait seulement la mémoire de l'appareil en cours d'exécution ssh-agent
de tous décrypté des clés privées. Si vous avez UseKeychain yes
dans votre configuration, ssh-agent
se fera un plaisir de re-décrypter la clé la prochaine fois qu'elle sera nécessaire (voir la réponse à la question 1 ci-dessus).
Une alternative pour satisfaire votre désir implicite de ne pas avoir de clés décryptées disponibles en permanence est de désactiver les deux options suivantes UseKeychain
et AddKeysToAgent
comme dans :
Host *
UseKeychain no
AddKeysToAgent no
Ensuite, ajoutez manuellement les clés à votre parcours ssh-agent
avec des durées de vie limitées en utilisant le -t <lifetime>
option pour ssh-add
comme dans :
ssh-add -t 4h ~/.ssh/id_rsa
Cela ajoutera votre clé RSA (par défaut) à l'agent avec une durée de vie de 4 heures. Après quatre heures, la clé sera automatiquement supprimée.
Pour autant que je sache, il n'y a pas de directive pour votre utilisateur ~/.ssh/config
pour spécifier la durée de vie par défaut de toute clé ajoutée à l'agent, et il n'y a pas non plus de moyen dans le système de spécifier la durée de vie par défaut de toute clé ajoutée à l'agent. sshd_config
. Cependant, il y a mai Il existe un moyen d'indiquer à macOS de lancer l'agent avec une durée de vie par défaut en utilisant l'attribut -t <lifetime>
option. Pour l'intrepid, le fichier plist de l'agent de lancement est stocké dans /System/Library/LaunchAgents/com.openssh.ssh-agent.plist
.
Un autre une approche plus ancienne, mais peut-être encore pertinente verrouille son trousseau de clés pendant son sommeil.