Как преобразовать открытый ключ gpg из двоичного формата в ASCII без импорта

Вопрос или проблема

У меня есть публичный ключ GPG key.gpg в бинарном формате. Я хотел бы конвертировать его в ASCII, чтобы итоговый файл имел заголовок

-----BEGIN PGP PUBLIC KEY BLOCK-----

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

Какова команда GnuPG (версия 2) для этого?

gpg --keyring ./key.gpg --no-default-keyring --homedir /dev/null --export -a > key.asc

Обратите внимание на использование ./key.gpg вместо просто key.gpg: GnuPG не сделает то, что вы ожидаете с последним вариантом, и создаст пустое хранилище ключей в ~/.gnupg/key.gpg.

gpg --enarmor < key.gpg > key.asc

это должно сработать.

Возможно, вы можете просто создать еще одно временное хранилище ключей, чтобы импортировать и экспортировать ключ следующим образом:

gpg  --keyring /tmp/temp.gpg  --no-default-keyring --import key.gpg 
gpg  --keyring /tmp/temp.gpg  --no-default-keyring  --export -a

Мне это не кажется элегантным, но это должно работать. Обратите внимание, что вторая команда экспортирует все ключи, присутствующие в хранилище ключей, в один единственный файл.

Ответ или решение

Чтобы преобразовать открытый ключ GPG из двоичного формата в ASCII без его импорта, необходимо воспользоваться утилитой GnuPG (версия 2). При этом требуется учитывать несколько нюансов, которые помогут избежать распространенных ошибок.

Пошаговая инструкция

  1. Подготовка файла: Убедитесь, что у вас есть файл с двоичным открытым ключом, именуемый key.gpg. Этот файл должен находиться в доступной директории.

  2. Использование команды для конвертации: Вы можете использовать следующую команду в терминале:

    gpg --no-default-keyring --keyring ./key.gpg --homedir /dev/null --export -a > key.asc

    Пояснения к команде:

    • --no-default-keyring: отключает использование стандартного хранилища ключей, чтобы избежать случайного создания пустого файла.
    • --keyring ./key.gpg: указывает на ваш двоичный ключ. Важно указывать путь явно (через ./), чтобы избежать создания нового пустого хранилища ключей в ~/.gnupg/key.gpg.
    • --homedir /dev/null: указывает, что директорией для хранения временных файлов служит /dev/null, что также предотвращает создание немного неуместных файлов в стандартных каталогах.
    • --export -a: экспортирует ключ в ASCII-формате с заголовком.
  3. Вывод в файл: Результат выполнения команды будет перенаправлен в файл key.asc, который будет содержать ваш открытый ключ с заголовком:

    -----BEGIN PGP PUBLIC KEY BLOCK-----

    и далее сам ключ в ASCII-формате.

Альтернативный подход

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

gpg --enarmor < key.gpg > key.asc

Эта команда также преобразует двоичный ключ в ASCII-формат. Однако по мнению некоторых пользователей, первый метод предпочтительнее, поскольку он более явный.

Временное хранилище ключей

Если вам нужно импортировать и затем экспортировать открытый ключ, можно создать временное хранилище ключей для выполнения этих операций. Например:

gpg --keyring /tmp/temp.gpg --no-default-keyring --import key.gpg
gpg --keyring /tmp/temp.gpg --no-default-keyring --export -a > key.asc

Такой способ подойдет в случаях, когда требуется работать с несколькими ключами. Следует помнить, что последняя команда экспортирует все ключи из временного хранилища в один файл, так что будьте аккуратны с этим.

Заключение

Таким образом, с использованием указанных команд вы сможете эффективно преобразовать двоичный открытый ключ GPG в ASCII-формат, избегая лишних манипуляций с хранилищем ключей. Выбор между командами зависит от ваших предпочтений и конкретной ситуации.

Оцените материал
Добавить комментарий

Капча загружается...