Beachten Sie, dass es mindestens zwei Fehlerberichte gibt, um Schlüssel ssh-add -d/-D
nicht zu entfernen:
Das genaue Problem ist:
ssh-add -d/-D
löscht nur manuell hinzugefügte Schlüssel aus dem Gnome-Schlüsselbund.
Es gibt keine Möglichkeit, automatisch hinzugefügte Schlüssel zu löschen.
Dies ist der ursprüngliche Fehler, und er ist definitiv noch vorhanden.
Wenn Sie beispielsweise zwei verschiedene automatisch geladene SSH-Identitäten haben, die zwei verschiedenen GitHub-Konten zugeordnet sind - beispielsweise für die Arbeit und zu Hause -, können Sie nicht zwischen diesen wechseln. GitHub Nimmt den ersten, der übereinstimmt, sodass Sie für GitHub immer als "Heimanwender" angezeigt werden, ohne dass Sie Dinge in Arbeitsprojekte hochladen können.
Das Zulassen ssh-add -d
der Anwendung auf automatisch geladene Schlüssel (und ssh-add -t X
das Ändern der Lebensdauer automatisch geladener Schlüssel) würde das Verhalten wiederherstellen, das die meisten Benutzer erwarten.
Genauer gesagt zum Thema:
Der Schuldige ist gpg-keyring-daemon
:
- Es untergräbt den normalen Betrieb von ssh-agent, meistens nur, damit ein hübsches Feld angezeigt wird, in das Sie die Passphrase für einen verschlüsselten ssh-Schlüssel eingeben können.
- Und es durchsucht Ihr
.ssh
Verzeichnis und fügt Ihrem Agenten automatisch alle gefundenen Schlüssel hinzu.
- Und Sie können diese Schlüssel nicht löschen.
Wie hassen wir das? Zählen wir nicht die Wege - das Leben ist zu kurz.
Der Fehler wird noch verstärkt, da neuere SSH-Clients beim Herstellen einer Verbindung zu einem Host automatisch alle Schlüssel in Ihrem SSH-Agenten testen.
Wenn zu viele vorhanden sind, lehnt der Server die Verbindung ab.
Und da gnome-keyring-daemon selbst entschieden hat, wie viele Schlüssel Ihr SSH-Agent haben soll, und sie automatisch geladen hat und Sie sie nicht löschen lassen, stoßen Sie an.
Dieser Fehler wurde in Ubuntu 14.04.4 noch vor zwei Tagen (21. August 2014) bestätigt.
Eine mögliche Problemumgehung:
- Haben Sie
ssh-add -D
alle Ihre löschen manuell hinzugefügt Tasten. Dies sperrt auch die automatisch hinzugefügten Schlüssel, ist jedoch nicht sehr nützlich, da gnome-keyring
Sie aufgefordert werden, sie trotzdem zu entsperren, wenn Sie versuchen, a git push
.
- Navigieren Sie zu Ihrem
~/.ssh
Ordner und verschieben Sie alle Schlüsseldateien mit Ausnahme derjenigen, mit der Sie sich identifizieren möchten, in einen separaten Ordner namens backup. Bei Bedarf können Sie auch Seepferdchen öffnen und die Schlüssel von dort löschen.
- Jetzt sollten Sie
git push
problemlos auskommen können.
Eine weitere Problemumgehung:
Was Sie wirklich tun möchten, ist, gpg-keyring-daemon
ganz auszuschalten .
Gehen Sie zu System --> Preferences --> Startup Applications
und deaktivieren Sie das SSH Key Agent (Gnome Keyring SSH Agent)
Feld " ". Sie müssen nach unten scrollen, um es zu finden.
Sie erhalten immer noch eine ssh-agent
, nur jetzt verhält es sich ordnungsgemäß: Keine Schlüssel werden automatisch geladen, Sie führen ssh-add aus, um sie hinzuzufügen, und wenn Sie Schlüssel löschen möchten, können Sie dies tun. Stell dir das vor.
Dieser Kommentar schlägt tatsächlich vor:
Die Lösung besteht darin, zu verhindern, dass gnome-keyring-manager
jemals etwas gestartet wird, was seltsamerweise schwierig war, indem schließlich die Ausführungsberechtigung der Programmdatei entfernt wurde.
Ryan Lue fügt in den Kommentaren einen weiteren interessanten Eckfall hinzu :
Für den Fall, dass dies jemandem hilft: Ich habe sogar versucht, die Dateien id_rsa
und id_rsa.pub
insgesamt zu löschen , und der Schlüssel wurde immer noch angezeigt.
Es stellte sich heraus, dass gpg-agent
sie in einer ~/.gnupg/sshcontrol
Datei zwischengespeichert wurden . Ich musste sie manuell von dort löschen.
Dies ist der Fall, wenn das keygrip
wie hier hinzugefügt wurde .
ssh-add -d
?