Notez qu'il existe au moins deux rapports de bogue pour ssh-add -d/-D ne pas supprimer les clés:
Le problème exact est:
ssh-add -d/-Dsupprime uniquement les clés ajoutées manuellement du trousseau de clés gnome.
Il n'existe aucun moyen de supprimer les clés ajoutées automatiquement.
C'est le bogue original, et il est toujours définitivement présent.
Ainsi, par exemple, si vous avez deux identités ssh différentes chargées automatiquement associées à deux comptes GitHub différents - par exemple pour le travail et pour la maison - il n'y a aucun moyen de basculer entre eux. GitHub prend le premier qui correspond, de sorte que vous apparaissez toujours comme votre utilisateur `` domestique '' sur GitHub, sans aucun moyen de télécharger des éléments dans des projets de travail.
Autoriser l' ssh-add -dapplication aux clés chargées automatiquement (et ssh-add -t Xmodifier la durée de vie des clés chargées automatiquement) rétablirait le comportement attendu par la plupart des utilisateurs.
Plus précisément, à propos du problème:
Le coupable est gpg-keyring-daemon:
- Cela perturbe le fonctionnement normal de ssh-agent, principalement pour qu'il puisse faire apparaître une jolie boîte dans laquelle vous pouvez taper la phrase de passe d'une clé ssh cryptée.
- Et il parcourt votre
.sshrépertoire et ajoute automatiquement toutes les clés qu'il trouve à votre agent.
- Et cela ne vous permettra pas de supprimer ces clés.
Comment détestons-nous cela? Ne comptons pas les moyens - la vie est trop courte.
L'échec est aggravé car les nouveaux clients ssh essaient automatiquement toutes les clés de votre agent ssh lors de la connexion à un hôte.
S'il y en a trop, le serveur rejettera la connexion.
Et puisque gnome-keyring-daemon a décidé lui-même du nombre de clés que vous voulez que votre agent ssh ait, et les a chargées automatiquement, ET NE VOUS LAISSERA PAS LES SUPPRIMER, vous êtes grillé.
Ce bogue est toujours confirmé dans Ubuntu 14.04.4, il y a à peine deux jours (21 août 2014)
Une solution de contournement possible:
- Faites
ssh-add -Dpour supprimer toutes vos clés ajoutées manuellement . Cela verrouille également les clés automatiquement ajoutées, mais n'est pas très utile car gnome-keyringvous demandera de les déverrouiller quand même lorsque vous essayez de faire un git push.
- Accédez à votre
~/.sshdossier et déplacez tous vos fichiers clés à l'exception de celui avec lequel vous souhaitez vous identifier dans un dossier séparé appelé sauvegarde. Si nécessaire, vous pouvez également ouvrir l'hippocampe et supprimer les clés à partir de là.
- Vous devriez maintenant pouvoir vous
git pushpasser de problème.
Une autre solution de contournement:
Ce que vous voulez vraiment faire, c'est de désactiver gpg-keyring-daemoncomplètement.
Accédez à System --> Preferences --> Startup Applicationset décochez la SSH Key Agent (Gnome Keyring SSH Agent)case " " - vous devrez faire défiler vers le bas pour la trouver.
Vous obtiendrez toujours un ssh-agent, mais maintenant seulement il se comportera correctement: aucune clé n'est chargée automatiquement, vous exécutez ssh-add pour les ajouter, et si vous voulez supprimer des clés, vous pouvez. Imagine ça.
Ce commentaire suggère en fait:
La solution est de ne gnome-keyring-managerjamais démarrer, ce qui était étrangement difficile en supprimant finalement l'autorisation d'exécution du fichier programme.
Ryan Lue ajoute un autre cas intéressant dans les commentaires :
Dans le cas où cela aide tout le monde: j'ai même essayé de supprimer les id_rsaet id_rsa.pubfichiers tout à fait, et la clé était toujours à l' affiche en place.
Il s'avère que les mettre en gpg-agentcache dans un ~/.gnupg/sshcontrolfichier ; J'ai dû les supprimer manuellement à partir de là.
C'est le cas lorsque lekeygrip a été ajouté comme ici .
ssh-add -d?