Как экспортировать закрытый / секретный ключ 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