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/-D
supprime 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 -d
application aux clés chargées automatiquement (et ssh-add -t X
modifier 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
.ssh
ré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 -D
pour 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-keyring
vous demandera de les déverrouiller quand même lorsque vous essayez de faire un git push
.
- Accédez à votre
~/.ssh
dossier 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 push
passer de problème.
Une autre solution de contournement:
Ce que vous voulez vraiment faire, c'est de désactiver gpg-keyring-daemon
complètement.
Accédez à System --> Preferences --> Startup Applications
et 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-manager
jamais 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_rsa
et id_rsa.pub
fichiers tout à fait, et la clé était toujours à l' affiche en place.
Il s'avère que les mettre en gpg-agent
cache dans un ~/.gnupg/sshcontrol
fichier ; J'ai dû les supprimer manuellement à partir de là.
C'est le cas lorsque lekeygrip
a été ajouté comme ici .
ssh-add -d
?