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

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

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

  • приложение Windows Kleopatra 2.1 (входит в gpg4win)
  • приложение Windows и GNU конфиденциальности помощника (включен в программе Gpg4win)

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

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

7 ответов


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

gpg --export-secret-keys

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

Edit:

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

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

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

gpg --list-keys

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

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

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


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

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


см. лечение темной выдры

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

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

сначала получите KEYID, который вы хотите из списка, показанного

$ gpg -K

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

затем вызовите тестируемую оболочку scipts "export_private_key" на первой учетной записи и создайте свой pubkey.ключ gpg.АСК. Впоследствии вызовите вторую учетную запись "import_private_key". Вот их содержимое, показанное с помощью cat (copy & paste content):

$ 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 "(при необходимости) и закрытые " ключи.АСК" на второй счет и envoke ниже показаны программы.

$ 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  ######################

в духе выдры "и что, должно быть, что".


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

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

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

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

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

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

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

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


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

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

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

gpg private_key.asc

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

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

2.Секретный ключ импорт (импортировать закрытый ключ)

gpg --import privateKey.asc

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

gpg --edit-key yourKeyName

введите trust, 5, y, а затем закройте

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