gpg: ошибка расшифровки: отсутствует секретный ключ

Вопрос или проблема

Во-первых, я потратил час на поиски ответов с похожими названиями, так что, пожалуйста, прочитайте это сообщение, прежде чем пометить этот вопрос как дубликат.

Я использую YubiKey для хранения своего PGP личного ключа с помощью функции смарт-карты.

Я подтверждаю, что личный ключ работает, так как я могу подключаться к серверам, используя SSH (что вызывает pinentry-mac).

$ cat .gnupg/gpg-agent.conf
enable-ssh-support
default-cache-ttl-ssh 60
max-cache-ttl-ssh 120
default-cache-ttl 60
max-cache-ttl 120
pinentry-program /usr/local/bin/pinentry-mac

Ошибка gpg: decryption failed: No secret key возникает, когда смарт-карта YubiKey не разблокирована, и я запускаю команды gpg.

$ gpg --decrypt /path/to/file.asc
gpg: зашифровано с помощью RSA ключа, ID скрыт
gpg: зашифровано с помощью 4096-битного RSA ключа, ID скрыт, создан скрыто
      скрыто
gpg: расшифровка открытым ключом не удалась: Разорванное соединение
gpg: расшифровка не удалась: Нет секретного ключа

Когда возникает вышеупомянутая ошибка, подключение к серверу с использованием SSH вызывает pinentry-mac, затем я нажимаю ctrl+c и запускаю gpg --decrypt /path/to/file.asc, и вызовется pinentry-mac.

Что здесь происходит? Как я могу заставить gpg --decrypt /path/to/file.asc работать без необходимости сначала использовать ssh?

Возможно, я что-то упускаю!

Обновление GnuPG с версии 2.2.22 до 2.2.23 с помощью brew upgrade решило проблему.

Ответ или решение

Проблема, с которой вы столкнулись, связана с использованием GnuPG (GPG) в сочетании с YubiKey для хранения вашего закрытого PGP-ключа. Ошибка gpg: decryption failed: No secret key возникает, когда GPG не может получить доступ к закрытому ключу, необходимому для расшифровки данных. Давайте проанализируем элементы вашей ситуации и предложим возможное решение.

1. Понимание проблемы

Вы используете YubiKey, который сохраняет ваш закрытый ключ в режиме смарт-карты. Когда вы пытаетесь выполнить команду gpg --decrypt /path/to/file.asc, GPG не может найти закрытый ключ, потому что YubiKey заблокирован. Ваша конфигурация gpg-agent.conf указывает на использование pinentry-mac для запроса PIN-кода, но, как вы заметили, этот запрос срабатывает только при подключении к серверу по SSH.

2. Ожидание разблокировки смарт-карты

Работа смарт-карт (включая YubiKey) подразумевает, что они могут быть заблокированы и требуют ввода PIN-кода перед доступом к закрытым ключам. Когда вы выполняете SSH-команду, происходит вызов pinentry-mac, который запрашивает у вас PIN-код, и последующее выполнение GPG-операции начинается с разблокированного ключа. Это объясняет, почему после выполнения SSH-команды GPG начинает корректно работать.

3. Расшифровка файла без предварительного вызова SSH

Чтобы избежать необходимости предварительного выполнения SSH-команды, вам следует сначала разблокировать при помощи GPG, что также вызовет pinentry для ввода PIN-кода. Это можно сделать через команду на шифрование или расшифровку, например:

gpg --use-agent --decrypt /path/to/samplefile

Теперь при запросе вы сможете ввести PIN-код, и ключ будет разблокирован для GPG-операций.

4. Обновление GnuPG

Как вы указали, обновление с версии 2.2.22 до 2.2.23 решило вашу проблему. Вероятно, в более новой версии GnuPG были исправлены некоторые проблемы совместимости или ошибки, влияющие на взаимодействие с YubiKey и gpg-agent. Регулярные обновления GnuPG имеют ключевое значение для обеспечения безопасной и корректной работы. Поэтому всегда стоит следить за последними версиями и изменениями.

5. Заключение

На практике, для успешного выполнения GPG-операций на базе YubiKey:

  • Убедитесь, что ваш YubiKey разблокирован перед попыткой выполнить расшифровку.
  • Проверяйте, что ваша версия GnuPG актуальна, чтобы избежать известных ошибок.
  • Возможно, будет полезно изучить настройки gpg-agent.conf и оптимизировать их.

Если у вас возникнут дальнейшие вопросы или сложности, не стесняйтесь обратиться к сообществу или документации. Ваши усилия по пониманию данного инструмента помогут вам более эффективно управлять своими ключами и данными.

Оцените материал
Добавить комментарий

Капча загружается...