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

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

Мы пыталисьЭкспорт ключа ASC с помощью:

  • Windows-приложения Kleopatra 2.1 (входит в gpg4win)
  • Windows-приложения GNU Privacy Assistant (входит в gpg4win)

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

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

Ответы [ 7 ]

173 голосов
/ 08 апреля 2011

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

gpg --export-secret-keys

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

Edit:

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

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

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

gpg --list-keys

Чтобы экспортировать только 1 определенный секретный ключ вместо всех них:

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

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

30 голосов
/ 23 мая 2012

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

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, чтобы включить этот импортированный закрытый ключ в качестве одного из ваших ключей

17 голосов
/ 18 мая 2013

См. Лечение Dark Otter

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

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

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

$ gpg -K

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

Затем вызовите проверенные сценарии оболочки «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  ######################

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

9 голосов
/ 08 апреля 2011

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

gpg --import mypub_key
gpg --allow-secret-key-import --import myprv_key
6 голосов
/ 08 апреля 2011

это сработало для меня:

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

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

Чтобы экспортировать только 1 определенный секретный ключ вместо всех них:

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

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

4 голосов
/ 31 июля 2017

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

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

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

gpg private_key.asc
3 голосов
/ 18 августа 2018

1.Экспортируйте секретный ключ (это то, что ваш босс должен был сделать для вас)

gpg --export-secret-keys yourKeyName > privateKey.asc

2.Импортный секретный ключ (импортируйте ваш privateKey)

gpg --import privateKey.asc

3Еще не сделано, вам все еще нужно доверять ключу.Вам необходимо убедиться, что вы также в конечном итоге доверяете ключу.

gpg --edit-key yourKeyName

Введите trust, 5, y, а затем выйдите из системы

Источник: https://medium.com/@GalarnykMichael/public-key-asymmetric-cryptography-using-gpg-5a8d914c9bca

...