我有几个旧的 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 密钥的地方。