无法再将 ssh 密钥添加到 gnupg-agent

Dam*_*sou 5 ssh gnupg

我有几个旧的 ssh 密钥,~/.gnupg/sshcontrol所以我删除了这个文件中的所有行并重新启动了我的计算机。现在,我不能再向 gpg 代理添加 ssh 密钥了:

$ cat ~/.gnupg/gpg-agent.conf 
enable-ssh-support

$ gpg-connect-agent --verbose /bye
gpg-connect-agent: closing connection to agent

$ gpg-connect-agent updatestartuptty /bye
OK

$ ssh-add -l
The agent has no identities.

$ ssh-add ~/.ssh/id_rsa
Enter passphrase for /home/cassou/.ssh/id_rsa: 
Identity added: /home/cassou/.ssh/id_rsa (/home/cassou/.ssh/id_rsa)

$ ssh-add -l
The agent has no identities.
Run Code Online (Sandbox Code Playgroud)

小智 6

我遇到了同样的问题,这就是我解决它的方法:

gpg-agent 将您使用 ssh-add 添加的密钥复制到特定目录下~/.gnupg(特别是~/.gnupg/private-keys-v1.d使用 gpg2)。

看来,而且我真的认为这应该报告为一个错误,如果您尝试使用 ssh-add 添加的密钥已经存在于该目录中,则它实际上不会添加该密钥,~/.gnupg/sshcontrol这反过来意味着它会“ t 由 gpg-agent 提供。运行grep -aoe "comment.*$" ~/.gnupg/private-keys-v1.d/*应该打印出一条评论(至少对我来说)对应于哪个键是哪个。

删除特定键并尝试再次添加后,它应该可以工作。我建议不要清除整个目录,因为这也是它缓存 gpg 密钥的地方。