「ssh-add -d」はIDの削除を拒否します。

「ssh-add -d」はIDの削除を拒否します。

秘密鍵のパスワード(id_rsa)を忘れるには、通常、次のようにします。

ssh-add -D # to forget all loaded identities
ssh-add -d # to forget primary identity ($HOME/.ssh/id_rsa)

macOS Sierra v10.12.1を使用すると、次のエラーが発生します。

$ 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

私は運なくGoogleを検索しました!

答え1

シエラと私も同じ問題を抱えている。削除してid_rsaから$HOME/.ssh/やり直してください(私もid_rsa.pub削除しました。したがって、2つのキープライベートそして人々)。それは私の問題を解決しました。

答え2

私の場合、少し違う問題が発生しました。ssh-add -Dプロキシを呼び出すと成功して応答しているように見えますが、All identities removed.実際にプロキシキーを一覧表示しても不要ssh-add -lなキーは引き続き一覧表示され、もちろんプロキシを使用してリモートホストに認証しようとするとピンを使用するように求められます。不要なキーにパスワードを設定するように構成したプログラム。迷惑私。

問題の原因は、私のgpg-agentデーモンが次のパスの下のファイルにキーをキャッシュしたためです~/.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

このキーを削除すると、廃止された~/.gnupg/sshcontrolキーのパスワードを求めるエージェントなしでgpg-agentを使用してリモートホストに認証できます。

答え3

参照されたIDが追加されたIDと異なる場合、このエラーが発生しました。この-dオプションは特定のキーを削除します。キーがロードされたことがない場合、削除は拒否されます。ロードされたキーを確認して、ssh-add -l小切手を確認できます。ssh-keygen -lf <path-to-private-key>

答え4

Ubuntu 18.04にはまだこのバグがあることがわかりました。

大きな努力なしにssh-agentから不要なキーを削除する簡単な方法は次のとおりです。

  1. 削除したいキーを見つけます

    ssh-add -l
    2048 SHA256:qzJYF7AJAJsLsJn7ZFPcJ+w78ZJVoPZI9TzXCq2cf5 .ssh/bad-key.pem (RSA)
    
  2. ~/.ssh ディレクトリに移動し、「disabled」という名前のサブディレクトリを作成します。

    cd ~/.ssh
    mkdir disabled
    
  3. 無効にするキーをこのディレクトリに移動します。

    mv bad-key.pem disabled/
    

それはすべてです。このキーはssh-agentでは使用できなくなりますが、必要に応じて保持して再追加できます。

関連情報