Как экспортировать закрытый/секретный ключ ASC для расшифровки файлов GPG в Windows

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

Мы попытались экспортировать ASC-ключ, используя:

  • Приложение Windows Kleopatra 2.1 (включено в gpg4win)
  • Приложение Windows GNU Privacy Assistant (включено в gpg4win)

            Error: "Decryption failed. Secret Key Not available." 
    

Как вы правильно экспортируете секретный или закрытый asc key для дешифрования файлов gpg?

Ответ 1

Вы можете экспортировать закрытый ключ с помощью командной строки из GPG. Он работает на оболочке Windows. Используйте следующую команду:

gpg --export-secret-keys

Обычный экспорт с --export не будет содержать никаких закрытых ключей, поэтому вы должны использовать --export-secret-keys.

Edit:

Подводя итог информации, приведенной в моих комментариях, это команда, которая позволяет вам экспортировать определенный ключ с ID 1234ABCD в файл secret.asc:

gpg --export-secret-keys -a 1234ABCD > secret.asc

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

gpg --list-keys

Экспортировать только один секретный ключ вместо всех из них:

gpg --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber - это номер идентификатора ключа для желаемой клавиши, которую вы пытаетесь экспортировать.

Ответ 2

Все приведенные выше ответы верны, но, возможно, не хватает одного важного шага, вам нужно отредактировать импортированный ключ и "в конечном счете довериться" этому ключу

gpg --edit-key (keyIDNumber)
gpg> trust

Please decide how far you trust this user to correctly verify other users' keys
(by looking at passports, checking fingerprints from different sources, etc.)

  1 = I don't know or won't say
  2 = I do NOT trust
  3 = I trust marginally
  4 = I trust fully
  5 = I trust ultimately
  m = back to the main menu

и выберите 5, чтобы включить импортированный закрытый ключ в качестве одного из ваших ключей

Ответ 3

Смотрите лечение Dark Otter

http://montemazuma.wordpress.com/2010/03/01/moving-a-gpg-key-privately/

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

Сначала получите требуемый KEYID из списка, показанного

$ gpg -K

В результирующем списке обратите внимание на KEYID (8 гексадецималов, следующих за секцией), которые вам нужны для передачи.

Затем запустите проверенные shell-скрипты "export_private_key" в первой учетной записи и сгенерируйте файл pubkey.gpg + keys.asc. Впоследствии вызывается на втором счете "import_private_key". Вот их содержимое показано с cat (копировать и вставлять содержимое):

$ cat export_private_key 
gpg -K
echo "select private key"
read KEYID
gpg --output pubkey.gpg --export $KEYID
echo REMEMBER THE COMING PASS-PHRASE
gpg --output - --export-secret-key $KEYID | \
   cat pubkey.gpg - | \
   gpg --armor --output keys.asc --symmetric --cipher-algo AES256
ls -l pubkey.gpg keys.asc
####################  E X P O R T _ P R I V A T E _ K E Y  #####################

Теперь переместите по какой-либо причине "pubkey.gpg" (если необходимо) и приватную "keys.asc" во вторую учетную запись и предложите ниже показанную программу.

$ cat import_private_key 
gpg --no-use-agent --output - keys.asc | gpg --import
###################  I M P O R T _ P R I V A T E _ K E Y  ######################

В Оттоварном духе "И это должно быть, что".

Ответ 4

Я думаю, что вы еще не импортировали закрытый ключ, так как ошибка сообщения говорила: для импорта открытого/закрытого ключа из gnupg:

gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key

Ответ 5

это закончилось для меня:

   gpg -a --export-secret-keys > exportedKeyFilename.asc 

вы можете назвать keyfilename.asc любым именем, если вы продолжаете расширение .asc.
эта команда копирует все секретные ключи на пользовательском компьютере в keyfilename.asc в рабочем каталоге, где была вызвана команда.

Экспортировать только один секретный ключ вместо всех из них:

   gpg -a --export-secret-keys keyIDNumber > exportedKeyFilename.asc

keyIDNumber - это номер идентификатора ключа для желаемой клавиши, которую вы пытаетесь экспортировать.

Ответ 6

Подобно @Wolfram J answer, вот способ шифрования вашего закрытого ключа с парольной фразой:

gpg --output - --armor --export $KEYID | \
    gpg --output private_key.asc --armor --symmetric --cipher-algo AES256

И соответствующий метод для расшифровки:

gpg private_key.asc