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

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

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

$ 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.

答案1

我遇到了同样的问题,以下是我解决的方法:

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

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

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

相关内容