La clé ssh persiste même après avoir supprimé la clé privée de ~ / .ssh - pourquoi?

18

J'ai généré des clés ssh (publiques et privées) et les ai stockées ~/.ssh/myServer/.

J'ai ajouté la clé publique au ~/.ssh/authorized_keysfichier du serveur et tout fonctionne très bien!

Dans mes efforts pour essayer de comprendre le fonctionnement des clés, je les ai supprimées et j'ai été surpris de constater que j'étais toujours en mesure de me connecter au serveur.

Pourquoi est-ce que je peux toujours me connecter sans mot de passe?

poltj18
la source

Réponses:

24

Bienvenue dans le monde merveilleux d'OS X Keychain et ssh-agent ! Depuis la page de manuel:

ssh-agent est un programme qui contient des clés privées utilisées pour l'authentification par clé publique (RSA, DSA, ECDSA). L'idée est que ssh-agent est démarré au début d'une session X ou d'une session de connexion, et que toutes les autres fenêtres ou programmes sont démarrés en tant que clients du programme ssh-agent. Grâce à l'utilisation de variables d'environnement variables, l'agent peut être localisé et automatiquement utilisé pour l'authentification lors de la connexion à d'autres machines à l'aide de ssh (1).

Votre clé privée a été mise en cache dans l'agent et est récupérée à partir de là pour authentifier votre session. OS X, via le trousseau, effectue la mise en cache automatique de l'agent ssh pour vous car il est "convivial". Cela peut être un peu alarmant, mais c'est surtout une chose pratique que cela se produise.

La durée de vie par défaut pour les clés mises en cache est indéfiniment. Ce n'est probablement pas un excellent défaut. Il videra les clés mises en cache lors d'un cycle de déconnexion / connexion ou d'un redémarrage. Ou vous pouvez forcer un rinçage en tuant l'agent actuel en utilisant:

ssh-add -D

Vous pouvez répertorier toutes les informations d'identification mises en cache par l'agent en exécutant:

ssh-add -l

Cela fera de même mais affichera les clés publiques complètes:

ssh-add -L
Ian C.
la source
Hou la la! Merci beaucoup! J'étais vraiment confus quant à ce qui se passait. Je comprends maintenant!
poltj18
2
@FAYNUS si cela résout le problème pour vous, veuillez appuyer sur la coche verte sur le côté droit pour la marquer comme "réponse acceptée"! Bienvenue sur Ask Different!
Ian C.