6

В моем ~/.gnupg/sshcontrol было несколько старых ключей ssh, поэтому я удалил все строки в этом файле и перезагрузил компьютер. Теперь я не могу больше добавлять ssh ключи в gpg agent:

$ 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 ответ1

7

У меня была такая же проблема, и вот как я решил ее:

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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .