macOS 10.12 Sierra n'oubliera pas ma phrase secrète de fichier clé ssh

25

Après avoir créé un nouveau id-rsafichier de clé chiffrée avec ssh-keygenet l'avoir utilisé pour la première fois, je n'arrive pas à faire en sorte que macOS oublie la phrase secrète. Ceci est similaire à la façon de faire en sorte qu'OS X ne se souvienne pas de la question de la phrase secrète de la clé ssh mais pire.

J'ai essayé de redémarrer, de tuer le ssh-agent, de verrouiller tous mes porte-clés, mais il semble toujours être stocké quelque part. Cependant, je ne le trouve dans aucun porte-clés. Cela semble être très précaire. Les réponses au mot de passe de la clé privée SSH jamais supprimées avec Keychain / ssh-agent n'aident pas non plus.

En fait, la boîte de dialogue qui apparaissait vous demandant si vous vouliez stocker la phrase secrète ou non ne semble plus exister.

hogliux
la source
Avez-vous vérifié s'il est réellement chiffré?
John Keates
Ouais. Je suis sûr que c'est comme ssh demande la phrase secrète la première fois que je l'utilise. Quelqu'un peut-il réellement reproduire cela?
hogliux
Eh bien, cela fonctionne aussi avec ma configuration, c'est la façon dont ssh / ssh-agent a été configuré.
John Keates
C'est vrai si vous cochez la case pour indiquer à macOS de stocker la phrase secrète dans le trousseau. Cependant, si vous ne cochez pas cette case, macOS devrait toujours demander la phrase secrète. Mais même si vous avez cliqué dessus, vous avez toujours pu le supprimer à nouveau dans l'utilitaire de trousseau. Depuis Sierra, la boîte de dialogue n'apparaît plus et il n'y a pas d'entrée dans l'utilitaire de trousseau.
hogliux
C'est la boîte de dialogue dont je parle qui ne semble plus exister: dribin.org/dave/resources/pictures/ssh_leopard_dialog.png
hogliux

Réponses:

27

Pour désactiver le stockage de la phrase secrète dans le trousseau, vous devez ajouter les lignes suivantes au fichier ~ / .ssh / config :

Host *
UseKeyChain no

Si vous avez déjà une phrase secrète stockée dans le trousseau, vous pouvez la supprimer à l'aide des commandes:

cd ~/Library/Keychains/<UUID>/
sqlite3 keychain-2.db 'delete from genp where agrp="com.apple.ssh.passphrases"'

Si vous souhaitez avoir un comportement comme dans OS X El Capitan ou une version antérieure (c'est-à-dire une phrase secrète stockée jusqu'à la déconnexion ou le redémarrage), ajoutez simplement à ~ / .ssh / config:

AddKeysToAgent yes

Vous n'avez pas besoin de démarrer ssh-agent.

mbamac
la source
1
Cette réponse résout définitivement le problème! J'ai donc marqué cela comme la bonne réponse. Merci!
hogliux
suggéré modifier: changement Library/Keychains/<UUID>/à ~/Library/Keychains/<UUID>/la clarté :)
Mohamed Hafez
modification suggérée acceptée :)
mbamac
20

Grâce à Clive, j'ai une meilleure compréhension de cette nouvelle «fonctionnalité». Lorsque vous saisissez votre mot de passe, Sierra l'ajoute à votre trousseau mais pas à l'agent ssh. Si votre identité n'est pas dans ssh-agent, il n'y a aucun moyen de la gérer ssh-add. Pour gérer (c'est-à-dire supprimer) votre identité à partir du trousseau, vous devez ajouter votre identité à l' ssh-agentaide de ssh-add. Une fois que vous avez ajouté votre identité, ssh-agentvous pouvez l'utiliser ssh-add -K -dpour la supprimer à la fois du ssh-agenttrousseau et du trousseau. Si vous souhaitez que votre identité soit ajoutée à ssh-agent à chaque fois que vous utilisez ssh add:

AddKeysToAgent yes

à votre .ssh/config. Cela garantira que ssh-agenttoujours a votre identité.

Gene Frenkler
la source
Juste un suivi. Si vous ajoutez «UseKeyChain no» à votre fichier .ssh / config, cela empêchera le trousseau d'ajouter votre phrase secrète. Vous souhaitez conserver 'AddKeysToAgent yes' dans ssh-agent conservera votre phrase secrète jusqu'à ce que vous redémarriez ou utilisiez ssh-add -d.
Gene Frenkler
Notez que cela nécessite l'utilisation de l'OpenSSH fourni par Apple. Ce patch n'est pas inclus dans le brassage maison à partir dehomebrew/dupes/openssh: stable 7.3p1
Ryan Gibbons
3
ssh-add -K -d

Cela peut supprimer les mots de passe précédemment stockés dans le trousseau. Depuis macOS 10.12 Sierra, pour éviter à nouveau la phrase secrète stockée dans le trousseau, assurez-vous de ssh-addcommencer.

Clive Lin
la source
Oui. Cela fonctionnait sur les versions précédentes de macOS Sierra. Mais ça ne marche plus. macOS Sierra se souvient toujours de la phrase secrète.
hogliux
1
D'ACCORD. Plus d'enquête. Il l'oublie une fois mais il retournera directement dans le trousseau après l'avoir utilisé n'importe où (ssh, scp, git etc.). Un inconnu m'a envoyé un e-mail directement et a découvert que la phrase secrète semblait être stockée dans ~ / Library / Keychains / <SOME-UUID> /keychain-2.db. Mais même lors du verrouillage de mon trousseau de connexion (et de tous les autres trousseaux), os x ne demandera pas mon mot de passe de trousseau lors de l'accès à la phrase secrète. Cela ne semble vraiment pas correct.
hogliux
En effet, il semble que dans Sierra, la phrase secrète soit enregistrée dans cet emplacement de trousseau et non dans le trousseau de connexion habituel.
m1keil