Я переустановил свою ОС (Ubuntu 16.04) и у меня есть старый каталог .gnupg, содержащий:
gpg-agent.conf
gpg-agent-info-<hostname>
gpg.conf
private-keys-v1.d
pubring.gpg
secring.gpg
S.gpg-agent
trustdb.gpg
Я хочу импортировать мои старые открытые и закрытые ключи в новый gnupg. (Я не просто скопировал каталог .gnupg в новую установку, потому что я понимаю, что новый gnupg2 имеет некоторые различия в формате базы данных, которые являются частью новых параметров шифрования EC.)
Следующее работает для открытых ключей, но не для секретных ключей:
gpg --export --keyring=~/.gnupg.old/pubring.gpg | gpg --import
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg | gpg --import
Последний ответил:
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Обратите внимание, что он не может открыть мое новое секретное кольцо. Выдает ту же ошибку при экспорте в файл:
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg > secret.asc
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
Поскольку у моего секретного ключа была удалена закрытая часть мастер-ключа, я также попытался сделать то же самое с --export-secret-subkeys
, но ответ был таким же. Установка идентификатора ключа (адреса электронной почты) после экспорта также не работает. С другой стороны, я могу перечислить ключи:
gpg --list-keys --keyring=~/.gnupg.old/secring.gpg
gpg: Oops; key lost!
node 0x1e7ee00 01/00 type=secret-key
node 0x1e9cbd0 00/00 type=user-id "Me <Me@home.com>" ....
node 0x1e99dd0 00/00 type=signature class=13 keyid=XXXXXXXX ts=1383637282
node 0x1e9c510 00/00 type=secret-subkey
node 0x1eaa210 00/00 type=signature class=18 keyid=XXXXXXXX ts=1449138073
node 0x1eaf1f0 00/00 type=secret-subkey
node 0x1eaf580 00/00 type=signature class=18 keyid=XXXXXXXX ts=138363647
(Я предполагаю, что "Ключ потерян" относится к удаленному секретному мастер-ключу.) Кто-нибудь может подсказать мне, как это решить?
С помощью @Jens (ниже) работает следующее:
gpg --no-default-keyring --secret-keyring=~/.gnupg.old/secring.gpg --export-secret-keys | gpg --import