Моя смарт-карта умерла (физически). Я сделал автономные резервные копии своих ключей, и они успешно импортированы обратно в GnuPG. Тем не менее, он продолжает спрашивать ключ всякий раз, когда я пытаюсь расшифровать с помощью ключей. Я даже попробовал это на новой машине, и все же мне не повезло, заставив GnuPG использовать локальные секретные ключи вместо открытых карт ...
1 ответ
Вам придется удалить старые ключи карты и импортировать их снова.
Прежде всего, убедитесь, что резервная копия действительно содержит секретные ключи, которые вы ищете:
gpg --list-packets [backup-file]
Вы должны найти несколько :secret [sub] key packet
. За ними не должны следовать (некоторые промежуточные строки) строки gnu-divert-to-card S2K...
или gnu-dummy S2K....
, которые указывают специфичные для GnuPG заглушки секретных ключей для карты или других автономных ключей.
Восстановление всего ключа
Если в резервной копии есть все секретные ключи, это не проблема, и вы можете просто запустить gpg --delete-secret-key [key-id]
и gpg --import
резервную копию.
Слияние с (новыми) подразделами
Если вы изменили свои секретные ключи после этой даты (например, добавили новые подразделы), вам придется объединить ключи. Это не проблема с GnuPG 2.1 или новее, который наконец-то реализовал слияние секретных ключей. Для более старых версий GnuPG вам придется вручную разбирать отдельные пакеты OpenPGP (gpgsplit
) и снова собирать их в правильном порядке. Лучше обновиться до GnuPG 2.1, что сделает все намного проще.
Удалите ключи карты через gpg --edit-key [key-id]
, а затем используйте gpg --import
для импорта (отсутствующих) подразделов. GnuPG 2.1 может быть установлен как gpg2
. Помните, что GnuPG 2.1 хранит секретные ключи в файле pubring.gpg
, поэтому GnuPG 1 или 2.0 не найдет его, если вы не экспортируете и не импортируете его снова в старый выпуск.