
Um die Passphrase des privaten Schlüssels (id_rsa) zu vergessen, führe ich normalerweise Folgendes aus:
ssh-add -D # to forget all loaded identities
ssh-add -d # to forget primary identity ($HOME/.ssh/id_rsa)
Jetzt mit macOS Sierra v10.12.1 erhalte ich diesen Fehler:
$ ssh-add -D
All identities removed.
$ ssh-add -d
Could not remove identity "/Users/user/.ssh/id_rsa": agent refused operation
Could not remove identity "/Users/user/.ssh/id_dsa": agent refused operation
Ich habe bei Google gesucht, aber ohne Erfolg!
Antwort1
Ich hatte das gleiche Problem mit Sierra. Versuchen Sie, id_rsa
es zu entfernen $HOME/.ssh/
und dann neu zu starten (ich habe es id_rsa.pub
auch entfernt - daher die beiden SchlüsselPrivatUndöffentlich). Es hat mein Problem gelöst.
Antwort2
In meinem Fall hatte ich ein etwas anderes Problem. Als ich ssh-add -D
den Agenten aufrief, schien er erfolgreich zu sein und antwortete mit, All identities removed.
aber tatsächlich ssh-add -l
blieben die unerwünschten Schlüssel beim Auflisten der Agentenschlüssel aufgelistet, und natürlich forderte mich der Agent beim Versuch, den Agenten zur Authentifizierung bei einem Remote-Host zu verwenden, mithilfe meines konfigurierten PIN-Programms auf, eine Passphrase für die unerwünschten Schlüssel einzugeben. Ärgerlich.
Die Ursache des Problems war, dass mein GPG-Agent-Daemon die Schlüssel in einer Datei unter folgendem Pfad zwischengespeichert hatte ~/.gnupg/sshcontrol
:
$ cat ~/.gnupg/sshcontrol
# List of allowed ssh keys. Only keys present in this file are used
# in the SSH protocol. The ssh-add tool may add new entries to this
# file to enable them; you may also add them manually. Comment
# lines, like this one, as well as empty lines are ignored. Lines do
# have a certain length limit but this is not serious limitation as
# the format of the entries is fixed and checked by gpg-agent. A
# non-comment line starts with optional white spaces, followed by the
# keygrip of the key given as 40 hex digits, optionally followed by a
# caching TTL in seconds, and another optional field for arbitrary
# flags. Prepend the keygrip with an '!' mark to disable it.
# RSA key added on: 2021-06-03 16:23:25
# Fingerprints: MD5:c1:[elided]:24
# SHA256:+Mj[elided]E4
21[elided]C9 0
# Ed25519 key added on: 2021-06-03 22:11:36
# Fingerprints: MD5:[elided]:24:da
# SHA256:EL[elided]Zs
E0[elided]47 0
Durch das Löschen dieser Schlüssel ~/.gnupg/sshcontrol
konnte ich den GPG-Agenten wieder zur Authentifizierung bei Remote-Hosts verwenden, ohne dass der Agent eine Passphrase für Schlüssel verlangte, die ich nicht mehr verwendete.
Antwort3
Dieser Fehler ist mir passiert, wenn die referenzierte Identität eine andere war als die, die hinzugefügt wurde. Die -d
Option entfernt einen bestimmten Schlüssel. Wenn dieser Schlüssel nie geladen wurde, wird das Entfernen abgelehnt. Sie können die geladenen Schlüssel überprüfen mit ssh-add -l
und die Schlüsselsignaturen überprüfen mitssh-keygen -lf <path-to-private-key>
Antwort4
Ich habe festgestellt, dass Ubuntu 18.04 immer noch diesen Fehler hat.
Hier ist meine einfache Methode zum Entfernen unerwünschter Schlüssel aus dem SSH-Agenten ohne nennenswerten Aufwand:
Suchen Sie den Schlüssel, den Sie entfernen möchten
ssh-add -l 2048 SHA256:qzJYF7AJAJsLsJn7ZFPcJ+w78ZJVoPZI9TzXCq2cf5 .ssh/bad-key.pem (RSA)
Gehen Sie in Ihr ~/.ssh-Verzeichnis und erstellen Sie ein Unterverzeichnis mit dem Namen disabled
cd ~/.ssh mkdir disabled
Verschieben Sie den Schlüssel, den Sie deaktivieren möchten, in dieses Verzeichnis.
mv bad-key.pem disabled/
Das ist alles. Der Schlüssel sollte im SSH-Agent nicht mehr verfügbar sein, Sie können ihn aber noch haben und ihn bei Bedarf wieder hinzufügen.