Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

gpg

gpg — это часть OpenPGP в GNU Privacy Guard (GnuPG). Это инструмент для предоставления услуг цифрового шифрования и подписи с использованием стандарта OpenPGP. gpg предлагает полное управление ключами и все функции, которые вы ожидаете от полноценной реализации OpenPGP.

Существуют две основные версии GnuPG: GnuPG 1.x и GnuPG 2.x. GnuPG 2.x поддерживает современные алгоритмы шифрования и, следовательно, должен быть предпочтительным вариантом по сравнению с GnuPG 1.x. Вам нужно использовать GnuPG 1.x только в том случае, если ваша платформа не поддерживает GnuPG 2.x или вам нужна поддержка некоторых функций, которые были устаревшими в GnuPG 2.x по соображениям безопасности, например, расшифровка данных, созданных с помощью ключей PGP-2.

Если вы ищете первую версию GnuPG, вы можете обнаружить, что эта версия установлена под именем gpg1.

Команды и опции

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

gpg может быть запущен без команд. В этом случае он выведет предупреждение и выполнит разумное действие в зависимости от типа файла, переданного ему на вход (зашифрованное сообщение будет расшифровано, подпись будет проверена, файл с ключами будет выведен на экран и т.д.).

Если у вас возникли какие-либо проблемы, добавьте опцию --verbose (подробно) к вызову команды, чтобы увидеть больше диагностической информации.

1 - Команды GPG

Полный список команда GPG

Команды, не привязанные к конкретной функции

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

--help -h Выводит сообщение о использовании, суммирующее наиболее полезные опции командной строки. Обратите внимание, что эту команду нельзя произвольно сокращать (хотя можно использовать её короткую форму -h).

--warranty Выводит информацию о гарантиях.

--dump-options Выводит список всех доступных опций и команд. Обратите внимание, что эту команду нельзя сокращать.

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

Команды для выбора типа операции

Команда (короткая)Описание
--sign (-s)Подписать сообщение. Можно комбинировать с --encrypt (для подписи и шифрования) и/или --symmetric. Ключ для подписи выбирается по умолчанию или задаётся опциями --local-user и --default-key.
--clear-sign
--clearsign
Создать подпись в чистом тексте (cleartext signature). Содержимое читаемо без специального ПО, которое нужно только для проверки подписи. Может изменять пробельные символы в конце строк.
--detach-sign (-b)Создать отделённую подпись (detached signature).
--encrypt (-e)Зашифровать данные для одного или нескольких открытых ключей. Комбинируется с --sign и/или --symmetric. Получатели задаются опциями --recipient.
--symmetric (-c)Зашифровать симметричным шифром с использованием парольной фразы (по умолчанию AES-128). Комбинируется с --sign и/или --encrypt. Пароль кэшируется.
--storeТолько сохранить (создать простой пакет literal data).
--decrypt (-d)Расшифровать файл, переданный в командной строке (или из STDIN) и записать в STDOUT. Если файл подписан, подпись также проверяется.
--verifyПроверить подпись файла, не выводя содержимое. Для проверки отделённой подписи нужно указать файл подписи и файл(ы) данных.
--multifileМодифицирует другие команды (--verify, --encrypt, --decrypt) для обработки нескольких файлов, переданных в командной строке или из STDIN.
--verify-filesАналогично --multifile --verify.
--encrypt-filesАналогично --multifile --encrypt.
--decrypt-filesАналогично --multifile --decrypt.
--list-keys (-k)
--list-public-keys
Вывести список указанных или всех открытых ключей. Не использовать для парсинга в скриптах (используйте --with-colons).
--list-secret-keys (-K)Вывести список указанных или всех секретных ключей. # означает, что ключ не используется, > — ключ на смарт-карте.
--check-signatures
--check-sigs
Аналогично --list-keys, но также проверяет и выводит подписи ключей. ! — хорошая подпись, - — плохая, % — ошибка проверки.
--locate-keys
--locate-external-keys
Найти ключи по аргументам (использует те же методы, что и при шифровании). Вторая команда не ищет в локальных хранилищах.
--show-keysАнализирует переданные ключи (не из ключевых колец) и выводит информацию о них, как --list-keys.
--fingerprintВывести список ключей вместе с их отпечатками. Если указать дважды, покажет отпечатки всех субключей.
--list-packetsВывести только последовательность пакетов (для отладки).
--edit-card
--card-edit
Открыть меню для работы со смарт-картой.
--card-statusПоказать содержимое смарт-карты.
--change-pinПозволить сменить PIN-код смарт-карты.
--delete-keysУдалить ключ из открытого ключевого кольца. В пакетном режиме требуется --yes или указание отпечатка.
--delete-secret-keysУдалить ключ из секретного ключевого кольца. В пакетном режиме требуется указание отпечатка.
--delete-secret-and-public-keyУдалить и секретный, и открытый ключ.
--exportЭкспортировать указанные или все открытые ключи в STDOUT или файл.
--send-keysОтправить указанные ключи на keyserver.
--export-secret-keys
--export-secret-subkeys
Экспортировать секретные ключи. Вторая форма делает первичный ключ непригодным для использования (GNU расширение).
--export-ssh-keyЭкспортировать ключ в формате OpenSSH.
--import
--fast-import
Импортировать/объединить ключи в ключевое кольцо.
--receive-keys
--recv-keys
Импортировать ключи с заданными keyIDs с keyserver’а.
--refresh-keysЗапросить обновления для существующих в ключевом кольце ключей с keyserver’а.
--search-keysНайти ключи по именам на keyserver’е.
--fetch-keysЗагрузить ключи по указанным URI.
--update-trustdbОбслуживание базы доверия (интерактивно, запрашивает ownertrust).
--check-trustdbОбслуживание базы доверия без взаимодействия с пользователем.
--export-ownertrustЭкспортировать значения ownertrust (для резервного копирования).
--import-ownertrustИмпортировать значения ownertrust из файла.
--rebuild-keydb-cachesПерестроить кэши в ключевом кольце.
--print-md
--print-mds
Вывести дайджест сообщения для указанного или всех алгоритмов.
--gen-randomСгенерировать count случайных байт заданного уровня качества (0, 1, 2).
--gen-primeСгенерировать простое число. (Use the source, Luke :-))
--enarmor
--dearmor
Упаковать/распаковать произвольные данные в/из ASCII-armor OpenPGP.
--unwrapМодифицирует --decrypt для вывода исходного сообщения без слоя шифрования (выводит структуру OpenPGP).
--tofu-policyУстановить политику TOFU (Trust On First Use) для указанных ключей.

Конкретные примеры использования

1. Шифрование и подпись:

# Зашифровать и подписать файл 'document.txt' для получателя alice@example.com, используя свой ключ bob@example.com для подписи.
# Результат в файле 'document.txt.gpg'
gpg --encrypt --sign --recipient alice@example.com --local-user bob@example.com --output document.txt.gpg document.txt
# Короткая форма:
gpg -e -s -r alice@example.com -u bob@example.com -o document.txt.gpg document.txt

2. Создание и проверка отделённой подписи:

# Создать отделённую подпись для файла 'package.zip'
gpg --detach-sign --output package.zip.sig package.zip
# Проверить отделённую подпись
gpg --verify package.zip.sig package.zip

3. Симметричное шифрование:

# Зашифровать файл 'secret.txt' симметричным шифром с помощью пароля
gpg --symmetric --output secret.txt.gpg secret.txt
# Расшифровать полученный файл (gpg запросит пароль)
gpg --decrypt --output secret.txt secret.txt.gpg

4. Работа с ключами:

# Вывести список открытых ключей с отпечатками
gpg --list-keys --fingerprint
# Импортировать ключ из файла
gpg --import public_key.asc
# Экспортировать открытый ключ с ID 12345678 в файл
gpg --export --armor 12345678 > public_key.asc
# Обновить все ключи в ключевом кольце с keyserver'а
gpg --refresh-keys

5. Проверка подписи чистого текста:

# Проверить подпись файла 'message.txt.asc'
gpg --verify message.txt.asc
# Если нужно извлечь подписанное содержимое в файл 'message.txt'
gpg --output message.txt --decrypt message.txt.asc

Конечно, вот перевод, структурированная таблица и практические примеры.

Как управлять своими ключами

В этом разделе объясняются основные команды для управления ключами.


Таблица команд управления ключами

Команда (короткая)Описание
--quick-generate-key
--quick-gen-key
Быстро сгенерировать стандартный ключ с одним ID пользователя. Без диалогов.
--quick-set-expireУстановить срок действия основного ключа (fpr) и/или его субключей.
--quick-add-keyДобавить субключ к существующему ключу (по отпечатку fpr).
--quick-add-adskДобавить Дополнительный Субключ для Расшифровки (ADSK) из другого ключа.
--generate-key
--gen-key
Сгенерировать новую пару ключей, используя параметры по умолчанию (интерактивно).
--full-generate-key
--full-gen-key
Сгенерировать новую пару ключей с диалогами для всех опций.
--generate-revocation
--gen-revoke
Создать сертификат отзыва для всего ключа.
--generate-designated-revocation
--desig-revoke
Создать назначенный сертификат отзыва (позволяет отозвать чужой ключ).
--edit-keyОсновная команда для интерактивного управления ключами через меню.
--sign-keyПодписать открытый ключ вашим секретным ключом (ярлык для sign в --edit-key).
--lsign-keyПодписать ключ с пометкой “не для экспорта” (ярлык для lsign).
--quick-sign-key
--quick-lsign-key
--quick-tsign-key
Быстро подписать ключ без дополнительного взаимодействия.
--quick-add-uidДобавить новый ID пользователя к существующему ключу.
--quick-revoke-uidОтозвать ID пользователя на существующем ключе.
--quick-revoke-sigОтозвать подписи ключей, сделанные указанным ключом.
--quick-set-primary-uidУстановить или обновить флаг основного ID пользователя.
--quick-update-prefОбновить список предпочтений ключа до текущего значения по умолчанию.
--quick-set-ownertrustУстановить уровень доверия (ownertrust) для ключа.
--change-passphrase
--passwd
Изменить парольную фразу секретного ключа.

Ключевые понятия из --edit-key:

  • sign / lsign / tsign / nrsign – Подписать ключ (обычная/локальная/доверительная/безотзывная).
  • adduid – Добавить user ID.
  • addkey – Добавить субключ.
  • passwd – Сменить парольную фразу.
  • revkey / revuid – Отозвать субключ / user ID.
  • expire – Изменить срок действия.
  • save – Сохранить изменения и выйти.
  • quit – Выйти без сохранения.

Примеры использования

1. Быстрое создание ключа

# Создать ключ для Alice, который никогда не истекает, используя алгоритмы по умолчанию
gpg --quick-generate-key "Alice Lovelace <alice@example.com>" default default never

# Создать ключ для Bob с истечением через 1 год
gpg --quick-gen-key "Bob Babbage <bob@example.com>" default default 1y

# Создать ключ, защищённый паролем "secret", в пакетном режиме
echo "secret" | gpg --batch --pinentry-mode loopback --passphrase-fd 0 --quick-gen-key "Test User" default default

2. Управление сроком действия и субключами

# Установить срок действия основного ключа (с отпечатком XYZ123...) на 2025-12-31
gpg --quick-set-expire XYZ1234567890ABCDEFGH 2025-12-31

# Добавить субключ шифрования (алгоритм по умолчанию) к существующему ключу
gpg --quick-add-key XYZ1234567890ABCDEFGH default encr

# Добавить субключ для аутентификации (Ed25519) с истечением через 6 месяцев
gpg --quick-add-key XYZ1234567890ABCDEFGH ed25519 auth 6m

3. Работа с существующими ключами (подпись, отзыв)

# Подписать ключ с отпечатком ABCD... (все его user IDs)
gpg --quick-sign-key ABCD0987654321ABCD0987654321ABCD0987654321

# Подписать ключ, но только конкретный user ID ('=*@company.org' - точное совпадение)
gpg --quick-sign-key ABCD0987654321ABCD0987654321ABCD0987654321 "=*@company.org"

# Отозвать user ID 'old@email.com' у ключа 'user@example.com'
gpg --quick-revoke-uid "user@example.com" "old@email.com"

4. Импорт и экспорт

# Импортировать ключ из файла
gpg --import public_key.asc

# Экспортировать открытый ключ с отпечатком XYZ... в файл
gpg --export --armor XYZ1234567890ABCDEFGH > alice_public.asc

# Экспортировать секретный ключ для резервной копии (ОСТОРОЖНО!)
gpg --export-secret-keys --armor XYZ1234567890ABCDEFGH > alice_secret_backup.asc

5. Просмотр и проверка

# Показать список открытых ключей с отпечатками
gpg --list-keys --fingerprint

# Показать список секретных ключей
gpg --list-secret-keys

# Проверить подписи на всех ключах в ключевом кольце
gpg --check-signatures

6. Интерактивное управление через --edit-key

# Начать редактирование ключа (заменить 'user@example.com' на свой ID)
gpg --edit-key user@example.com

# В появившемся интерактивном меню (prompt: gpg>) можно использовать:
# gpg> adduid                         # Добавить новый user ID
# gpg> addkey                         # Добавить новый субключ
# gpg> passwd                         # Сменить пароль
# gpg> expire                         # Изменить срок действия
# gpg> key 1                          # Выбрать первый субключ (для операций с ним)
# gpg> trust                          # Изменить уровень доверия
# gpg> save                           # Сохранить изменения и выйти

Конечно, вот подробная таблица всех субкоманд --edit-key и дополнительные примеры.

Таблица субкоманд интерактивного меню --edit-key

Команда вводится после приглашения gpg>.

СубкомандаОписание
uid nПереключить выбор пользователя (user ID) или фотографии с индексом n. * — выбрать всех, 0 — отменить выбор всех.
key nПереключить выбор субключа с индексом n или key ID n. * — выбрать все, 0 — отменить выбор всех.
signСоздать подпись на ключе. Если ключ ещё не подписан вашим ключом по умолчанию, будет запрошено подтверждение.
lsignТо же, что sign, но подпись помечается как неэкспортируемая (local).
nrsignТо же, что sign, но подпись помечается как безотзывная (non-revocable).
tsignСоздать доверительную подпись (trust signature). Требует указания глубины цепи доверия и значения.
delsigУдалить подпись с ключа. Не может отозвать подпись, уже отправленную публично.
revsigОтозвать подпись. Для каждой вашей подписи будет предложено создать сертификат отзыва.
checkПроверить подписи на всех выбранных user IDs. С опцией selfsig показываются только самоподписи.
adduidДобавить дополнительный user ID (имя и email).
addphotoДобавить фотографию (JPEG) в качестве user ID.
showphotoПоказать выбранную фотографию user ID.
deluidУдалить user ID или фотографию. Не может отозвать user ID, уже отправленный публично.
revuidОтозвать user ID или фотографию.
primaryПометить текущий user ID как основной. Снимает эту пометку с других user IDs.
keyserverУстановить предпочтительный keyserver для выбранных user IDs. "none" — удалить.
notationУстановить нотацию (name=value) для выбранных user IDs. "none" — удалить все.
prefПоказать фактические предпочтения (шифры, хэши, сжатие) для выбранного user ID.
showprefПоказать предпочтения с учётом значений по умолчанию (более подробно).
setpref [string]Установить список предпочтений. Без аргументов — сбросить на значения по умолчанию. "none" — очистить.
addkeyДобавить новый субключ к основному ключу.
addcardkeyСгенерировать субключ на смарт-карте и добавить его к этому ключу.
keytocardПеренести выбранный секретный субключ на смарт-карту. Ключ в keyring будет заменён на заглушку.
bkuptocard fileВосстановить ключ из файла-бэкапа на новую смарт-карту.
keytotpmПеренести выбранный секретный ключ в форму, защищённую TPM (Trusted Platform Module).
delkeyУдалить публичную часть субключа. Не может отозвать субключ, уже отправленный публично.
revkeyОтозвать субключ.
expireИзменить срок действия основного ключа или выбранного субключа.
trustИзменить уровень доверия (ownertrust) для ключа. Изменения в trustdb применяются сразу.
disableОтключить весь ключ. Отключённый ключ нельзя использовать.
enableВключить ключ.
addrevokerДобавить назначенного отзывающего (designated revoker) для ключа. Опция "sensitive" — не экспортировать по умолчанию.
addadskДобавить Дополнительный Субключ для Расшифровки (Additional Decryption Subkey) с другого ключа.
passwdИзменить парольную фразу для секретного ключа.
toggleПустая команда для обратной совместимости.
cleanОчистить ключ: удалить невалидные, устаревшие, отозванные подписи и подписи от отсутствующих ключей.
minimizeСжать ключ до минимального размера, оставив для каждого user ID только последнюю самоподпись.
change-usageИзменить флаги использования (возможности) основного ключа или субключей (например, добавить Authenticate).
cross-certifyДобавить перекрёстные сертифицирующие подписи на подписывающие субключи для защиты от атак.
saveСохранить все изменения в ключевое кольцо и выйти.
quitВыйти без сохранения изменений.

Примеры использования --edit-key

1. Базовое управление ключом

# Начать редактирование ключа для alice@example.com
gpg --edit-key alice@example.com

# В интерактивном меню:
gpg> adduid                         # Добавить новый user ID (запрос имени и email)
    Real name: Alice Lovelace
    Email address: alice@work.com
    Comment: Work account
    (Подтвердить)

gpg> uid 2                          # Выбрать второй user ID (только что добавленный)
gpg> primary                        # Сделать его основным
gpg> passwd                         # Изменить парольную фразу
gpg> save                           # Сохранить изменения и выйти

2. Управление субключами

gpg --edit-key bob@example.com

gpg> addkey                         # Добавить новый субключ
    Please select what kind of key you want:
       (3) DSA (sign only)
       (4) RSA (sign only)
       (5) Elgamal (encrypt only)
       (6) RSA (encrypt only)
       (7) DSA (set your own capabilities)
       (8) RSA (set your own capabilities)
       (10) ECC (sign only)
       (11) ECC (set your own capabilities)
       (12) ECC (encrypt only)
       (13) Existing key
    Your selection? 6               # Выбираем RSA (только шифрование)
    What keysize do you want? 4096  # Указываем размер ключа
    Key is valid for? 1y            # Указываем срок действия (1 год)
    (Подтвердить создание)

gpg> key 1                          # Выбрать первый субключ (для операций с ним)
gpg> expire                         # Изменить его срок действия
    Key is valid for? (0) 0
    Key does not expire at all
    Is this correct? (y/N) y        # Сделать бессрочным

gpg> revkey                         # ОТОЗВАТЬ этот субключ (если он скомпрометирован)
gpg> save

3. Подписание чужих ключей и управление доверием

# Предполагается, что ключ друга уже импортирован
gpg --edit-key friend@example.com

gpg> sign                           # Подписать ключ друга
    ... Вывод информации о ключе и его отпечатка ...
    Really sign? (y/N) y            # Подтверждаем подписание

gpg> tsign                          # Создать доверительную подпись
    Enter the depth of this trust signature (1-255): 1
    Enter the trust value (60=marginal, 120=full, 0-255): 120
    Enter a domain name (optional): our-community.org
    Really sign? (y/N) y

gpg> trust                          # Изменить уровень доверия к владельцу ключа
    Your decision? 5                # Указываем: "I trust ultimately"
gpg> save

4. Работа со смарт-картой (YubiKey и аналоги)

gpg --edit-key mykey@example.com

gpg> keytocard                      # Перенести выбранный секретный ключ на карту
    Please select where to store the key:
       (1) Signature key
       (2) Encryption key
       (3) Authentication key
    Your selection? 1               # Переносим подписывающий ключ в слот для подписи
    (Введите пароль админа карты)

gpg> key 1                          # Выбрать следующий ключ
gpg> keytocard
    Your selection? 2               # Переносим шифрующий ключ в слот для шифрования

gpg> save                           # Секретные ключи теперь на карте, в keyring - заглушки

5. Отзыв компонентов ключа

# Ключ скомпрометирован, нужно отозвать старый email и создать сертификат отзыва
gpg --edit-key compromised@example.com

gpg> uid 1                          # Выбрать user ID со старым email
gpg> revuid                         # ОТОЗВАТЬ этот user ID
    Create a revocation certificate for this user ID? (y/N) y
    Enter the reason for the revocation: 1 # 1 = Key has been compromised
    Enter an optional description; ...:
    (Подтвердить)

gpg> genrevoke                      # Создать сертификат отзыва для всего ключа
    Create a revocation certificate? (y/N) y
    Enter the reason for the revocation: 1
    ... (Описание) ...
    Вывод ASCII-armored сертификата отзыва
    Сохранить его в надёжное место!

gpg> quit                           # Пока не сохраняем изменения, только создали сертификат

# Позже, чтобы применить отзыв, импортируем сертификат
gpg --import revocation_certificate.asc

2 - Опции PGP

Список опций PGP

В GnuPG (gpg) имеется множество опций для точного контроля поведения и изменения конфигурации по умолчанию.

Опции конфигурации GPG: Как изменить конфигурацию. • Опции GPG, связанные с ключами: Опции, связанные с ключами. • Ввод и вывод GPG: Опции ввода и вывода. • Опции OpenPGP: Специфичные для протокола OpenPGP опции. • Опции соответствия (Compliance): Опции соответствия. • Эзотерические опции GPG: Выполнение действий, которые обычно не требуются. • Устаревшие опции: Опции, признанные устаревшими.

Длинные опции (long options) можно поместить в файл настроек (по умолчанию ~/.gnupg/gpg.conf). Короткие имена опций (short option names) работать не будут — например, armor является допустимой опцией для файла настроек, а a — нет. Не нужно писать 2 дефиса, достаточно указать имя опции и любые необходимые аргументы. Строки, у которых первый непробельный символ является решёткой (#), игнорируются. Команды также можно помещать в этот файл, но обычно это бесполезно, так как команда будет выполняться автоматически при каждом запуске gpg.

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

Таблица опций конфигурации GPG

Опция (короткая)Описание
--default-key nameИспользовать name как ключ по умолчанию для подписи. Рекомендуется использовать отпечаток или длинный ключевой ID. Переопределяется опцией -u.
--default-recipient nameИспользовать name как получателя по умолчанию, если не используется --recipient. Не запрашивать подтверждение.
--default-recipient-selfИспользовать ключ по умолчанию в качестве получателя по умолчанию.
--no-default-recipientСбросить --default-recipient и --default-recipient-self. Не для файла опций.
-v, --verboseВыдавать больше информации при обработке. Если использовать дважды, входные данные выводятся подробно.
--no-verboseСбросить уровень детализации до 0. Не для файла опций.
-q, --quietРаботать как можно тише. Не для файла опций.
--batchИспользовать пакетный режим. Никогда не спрашивать, не разрешать интерактивные команды.
--no-batchОтключить пакетный режим.
--no-ttyУбедиться, что TTY (терминал) никогда не используется для вывода.
--yesПредполагать ответ “да” на большинство вопросов. Не для файла опций.
--noПредполагать ответ “нет” на большинство вопросов. Не для файла опций.
--proc-all-sigsОтменить поведение --batch для остановки проверки подписи при первой плохой подписи.
--list-filter {select=expr}Фильтр списка для вывода только определенных ключей при выводе списка ключей.
--list-options parametersСтрока параметров для настройки вывода списков ключей и подписей. См. подопции ниже.
show-photosПоказывать фото ID ключей. По умолчанию no.
show-usageПоказывать информацию об использовании ключей (E=шифрование, S=подпись, C=сертификация, A=аутентификация). По умолчанию yes.
show-ownertrustПоказывать значение доверия (ownertrust) для ключей. По умолчанию no.
show-trustsigПоказывать информацию о доверительных подписях. По умолчанию no.
show-policy-urlsПоказывать URL политик в списках --check-signatures. По умолчанию no.
show-notationsПоказывать все notations подписей. По умолчанию no.
show-std-notationsПоказывать только стандартные (IETF) notations подписей. По умолчанию no.
show-user-notationsПоказывать пользовательские notations подписей. По умолчанию no.
show-x509-notationsВыводить сертификаты X.509, встроенные в подписи ключей, в формате PEM (для отладки).
store-x509-notationsСохранять сертификаты X.509, встроенные в подписи ключей, как файлы PEM.
show-keyserver-urlsПоказывать предпочтительные URL keyserver’ов. По умолчанию no.
show-uid-validityПоказывать расчетную валидность user ID. По умолчанию yes.
show-unusable-uidsПоказывать отозванные и просроченные user ID. По умолчанию no.
show-unusable-subkeysПоказывать отозванные и просроченные субключи. По умолчанию no.
show-unusable-sigsПоказывать подписи ключей, сделанные с использованием слабых или неподдерживаемых алгоритмов.
show-keyringПоказывать имя ключевого кольца в заголовке списков ключей. По умолчанию no.
show-sig-expireПоказывать даты истечения срока действия подписей. По умолчанию no.
show-sig-subpacketsВключать подпакеты подписи в список ключей (только с --with-colons). По умолчанию no.
show-only-fpr-mboxДля каждого user ID с действительным email выводить только отпечаток и адрес.
sort-sigsСортировать подписи по keyID и времени создания для --list-sigs и --check-sigs. По умолчанию yes.
--verify-options parametersСтрока параметров для настройки проверки подписей. См. подопции ниже.
show-photosПоказывать фото ID на ключе, выпустившем подпись. По умолчанию no.
show-policy-urlsПоказывать URL политик в проверяемой подписи. По умолчанию yes.
show-notationsПоказывать все notations в проверяемой подписи.
show-std-notationsПоказывать только стандартные (IETF) notations в проверяемой подписи. По умолчанию yes.
show-user-notationsПоказывать пользовательские notations в проверяемой подписи.
show-keyserver-urlsПоказывать предпочтительные URL keyserver’ов в проверяемой подписи. По умолчанию yes.
show-uid-validityПоказывать расчетную валидность user ID на ключе, выпустившем подпись. По умолчанию yes.
show-unusable-uidsПоказывать отозванные и просроченные user ID при проверке подписи. По умолчанию no.
show-primary-uid-onlyПоказывать только основной user ID при проверке подписи.
--enable-large-rsaРазрешить создание RSA-ключей размером до 8192 бит (с --generate-key --batch).
--disable-large-rsaЗапретить создание больших RSA-ключей.
--enable-dsa2Включить усечение хэша для всех DSA-ключей.
--disable-dsa2Отключить усечение хэша для DSA-ключей.
--photo-viewer stringКомандная строка для просмотра фото ID. Замещает %i, %I, %k, %K, %f, %t, %T, %v, %V, %U, %%.
--exec-path stringЗадать список каталогов для поиска программ просмотра фото.
--keyring fileДобавить файл file в текущий список ключевых колец.
--primary-keyring fileОбозначить file как основное ключевое кольцо (сюда импортируются новые ключи).
--secret-keyring fileУстаревшая опция, игнорируется.
--trustdb-name fileИспользовать file вместо trustdb по умолчанию.
--homedir dirУстановить домашний каталог в dir.
--display-charset nameУстановить кодировку для преобразования строк (например, iso-8859-1, koi8-r, utf-8).
--utf8-stringsСчитать аргументы командной строки строками в UTF-8.
--no-utf8-stringsСчитать аргументы в кодировке, указанной --display-charset.
--options fileЧитать опции из файла file, а не из файла по умолчанию.
--no-optionsЯвно не читать никакой файл опций. Сокращение для --options /dev/null.
-z nУстановить уровень сжатия n для алгоритмов ZIP/ZLIB. 0 - отключить сжатие. -1 - принудительное сжатие уровнем по умолчанию.
--compress-level nУстановить уровень сжатия для ZIP/ZLIB.
--bzip2-compress-level nУстановить уровень сжатия для BZIP2.
--no-compressОтключить сжатие. Identical to -z0.
--bzip2-decompress-lowmemИспользовать метод распаковки BZIP2 с низким потреблением памяти (медленнее).
--mangle-dos-filenamesЗаменять расширение выходного файла для совместимости со старыми версиями Windows.
--no-mangle-dos-filenamesНе изменять имена файлов (по умолчанию).
--ask-cert-levelЗапрашивать уровень сертификации при подписании ключа.
--no-ask-cert-levelНе запрашивать уровень сертификации.
--default-cert-level nУровень сертификации по умолчанию при подписании ключа (0-3). По умолчанию 0.
--min-cert-levelМинимальный уровень сертификации для принятия подписи при построении базы доверия. По умолчанию 2.
--trusted-key long key ID or fingerprintСчитать указанный ключ таким же доверенным, как свой собственный секретный ключ.
--add-desig-revoker [sensitive:]fingerprintДобавить указанный ключ как назначенного отзывающего для вновь создаваемых ключей.
--default-new-key-adsk fingerprintДобавить указанный субключ как ADSK (Additional Decryption Subkey) для вновь создаваемых ключей.
--trust-model {pgp|classic|tofu|tofu+pgp|direct|always|auto}Установить модель доверия. По умолчанию pgp.
--always-trustИдентично --trust-model always.
--assert-signer fpr_or_fileУбедиться, что хотя бы одна действительная подпись сделана указанным ключом (по отпечатку).
--assert-pubkey-algo algolistУбедиться, что при проверке подписи использовался алгоритм из algolist.
--auto-key-locate mechanismsМеханизмы автоматического поиска ключей (local, wkd, keyserver, ldap, cert, dane, ntds, nodefault, clear). По умолчанию local,wkd.
--no-auto-key-locateОтключить автоматический поиск ключей.
--auto-key-importИмпортировать ключ, встроенный в подпись, при успешной проверке.
--no-auto-key-importНе импортировать встроенные ключи (по умолчанию).
--auto-key-retrieveАвтоматически получать ключи с keyserver’а при проверке подписей неизвестных ключей.
--no-auto-key-retrieveНе получать ключи автоматически (по умолчанию).
--keyid-format {none|short|0xshort|long|0xlong}Формат отображения key ID. По умолчанию 0xlong.
--keyserver nameУстарело. Использовать name в качестве keyserver’а. Используйте dirmngr.conf вместо этого.
--keyserver-options {name=value}Опции для keyserver’а (include-revoked, include-disabled, honor-keyserver-url, include-subkeys и др.).
--completes-needed nКоличество полностью доверенных пользователей для представления нового подписанта (по умолчанию 1).
--marginals-needed nКоличество частично доверенных пользователей для представления нового подписанта (по умолчанию 3).
--tofu-default-policy {auto|good|unknown|bad|ask}Политика TOFU по умолчанию (по умолчанию auto).
--max-cert-depth nМаксимальная глубина цепочки сертификации (по умолчанию 5).
--no-sig-cacheНе кэшировать статус проверки подписей ключей.
--auto-check-trustdbАвтоматически запускать --check-trustdb при необходимости.
--no-auto-check-trustdbОтключить автоматическую проверку trustdb.
--use-agentФиктивная опция. gpg всегда требует агент.
--no-use-agentФиктивная опция.
--gpg-agent-infoФиктивная опция. Не имеет эффекта.
--agent-program fileУказать программу-агент для операций с секретными ключами.
--dirmngr-program fileУказать программу dirmngr для доступа к keyserver’ам.
--disable-dirmngrПолностью отключить использование Dirmngr.
--no-autostartНе запускать gpg-agent или dirmngr автоматически, если они еще не запущены.
--lock-onceЗаблокировать базы данных один раз и не снимать блокировку до завершения процесса.
--lock-multipleСнимать блокировки, когда они больше не нужны.
--lock-neverПолностью отключить блокировку.
--exit-on-status-write-errorНемедленно завершать процесс при ошибках записи в status FD.
--limit-card-insert-tries nОграничить количество запросов на вставку смарт-карты числом n-1.
--no-random-seed-fileНе использовать файл для хранения пула случайных чисел между вызовами.
--no-greetingНе показывать начальное сообщение об авторских правах.
--no-secmem-warningНе показывать предупреждение о “использовании незащищенной памяти”.
--no-permission-warningНе показывать предупреждение о небезопасных разрешениях файлов и каталогов.
--require-secmemОтказаться работать, если невозможно получить защищенную память.
--no-require-secmemРаботать, даже если нет защищенной памяти (по умолчанию, с предупреждением).
--require-cross-certificationТребовать наличия действительной перекрестной сертификации для субключей при проверке подписи.
--no-require-cross-certificationНе требовать перекрестной сертификации.
--expertРазрешить пользователю выполнять определенные нестандартные или потенциально несовместимые действия.
--no-expertЗапретить экспертный режим (по умолчанию).
Опция (короткая)Описание
--recipient name
-r
Зашифровать для пользователя с ID name. Если эта опция или --hidden-recipient не указана, GnuPG запросит user-id (если не задан --default-recipient).
--hidden-recipient name
-R
Зашифровать для пользователя с ID name, но скрыть key ID его ключа. Помогает скрыть получателя сообщения и является ограниченной мерой против анализа трафика.
--recipient-file file
-f
Аналогично --recipient, но шифрует для ключа, хранящегося в указанном файле file. Файл должен содержать ровно один ключ. GnuPG считает ключ в файле полностью valid.
--hidden-recipient-file file
-F
Аналогично --hidden-recipient, но шифрует для ключа, хранящегося в указанном файле file.
--encrypt-to nameТо же, что --recipient, но предназначена для использования в файле опций. Может использоваться с вашим собственным user-id как “encrypt-to-self” (зашифровать для себя). Рекомендуется использовать отпечаток или длинный keyID. Эти ключи используются только при наличии других получателей. Проверка доверия для этих user id не выполняется, можно использовать даже отключенные ключи.
--hidden-encrypt-to nameТо же, что --hidden-recipient, но предназначена для использования в файле опций. Может использоваться как скрытый “encrypt-to-self”.
--no-encrypt-toОтключить использование всех ключей, заданных через --encrypt-to и --hidden-encrypt-to.
--group {name=value}Создает именованную группу, подобную псевдонимам в почтовых программах. Когда имя группы указывается как получатель, оно раскрывается в указанные значения. Значениями могут быть key IDs или отпечатки. Пространства в значениях обрабатываются как разделители.
--ungroup nameУдалить заданную запись из списка групп.
--no-groupsУдалить все записи из списка групп.
--local-user name
-u
Использовать name как ключ для подписи. Переопределяет --default-key.
--sender mboxПри создании подписи: указывает user ID ключа для подписи и встраивает его в создаваемую подпись (используя subpacket “Signer’s User ID” OpenPGP).
При проверке подписи: mbox используется для ограничения информации, выводимой кодом TOFU, соответствующими user IDs. GnuPG учитывает только почтовую часть User ID.
--try-secret-key nameДля скрытых получателей GPG нужно знать ключи для пробной расшифровки. Эта опция позволяет задать дополнительные ключи для использования. Рекомендуется использовать long keyid во избежание неоднозначностей.
--try-all-secretsНе смотреть на key ID, хранящийся в сообщении, а пробовать все секретные ключи по очереди, чтобы найти правильный ключ для расшифровки. Принудительно включает поведение, используемое для анонимных получателей.
--skip-hidden-recipientsПри расшифровке пропускать всех анонимных получателей. Помогает избежать перебора всех секретных ключей, когда функция скрытых получателей используется для сокрытия ключа encrypt-to.
--no-skip-hidden-recipientsНе пропускать анонимных получателей при расшифровке (поведение по умолчанию).

3 - Ввод и вывод

Описание настроек для ввода и вывода

Ввод и Вывод

--armor -a Создавать вывод в формате ASCII-armor (защищенный ASCII). По умолчанию создается бинарный формат OpenPGP.

--no-armor Предполагать, что входные данные не в формате ASCII-armor.

--output file -o file Записывать вывод в файл file. Для записи в стандартный поток вывода (stdout) используйте - в качестве имени файла.

--max-output n Эта опция устанавливает лимит на количество байт, которые будут сгенерированы при обработке файла. Поскольку OpenPGP поддерживает различные уровни сжатия, возможно, что открытый текст данного сообщения может быть значительно больше исходного сообщения OpenPGP. Хотя GnuPG корректно работает с такими сообщениями, часто возникает желание установить максимальный размер файла, который будет сгенерирован, прежде чем обработка будет принудительно остановлена из-за ограничений ОС. По умолчанию 0, что означает «без ограничений».

--chunk-size n Режим шифрования AEAD шифрует данные блоками (chunks), чтобы принимающая сторона могла проверять ошибки передачи или подделку в конце каждого блока, а не откладывать это до получения всех данных. Используемый размер блока составляет 2^n байт. Наименьшее разрешенное значение для n — 6 (64 байта), а наибольшее — значение по умолчанию 22, что создает блоки размером не более 4 МиБ.

--input-size-hint n Эта опция может быть использована, чтобы сообщить GPG размер входных данных в байтах. n должно быть положительным числом в десятичной системе счисления. Эта опция полезна только если ввод осуществляется не из файла. GPG может использовать эту подсказку для оптимизации стратегии выделения буферов. Она также используется в строке --status-fd «PROGRESS» для предоставления значения «total», если оно недоступно другими способами.

--key-origin string[,url] gpg может отслеживать происхождение ключа. Некоторые источники известны неявно (например, keyserver, web key directory) и устанавливаются автоматически. Для стандартного импорта происхождение импортируемых ключей можно задать с помощью этой опции. Чтобы узнать возможные значения, используйте "help" в качестве string. Некоторые источники могут хранить необязательный аргумент url; такой URL можно добавить к string через запятую.

--import-options parameters Это строка, разделенная пробелами или запятыми, которая задает параметры для импорта ключей. К параметрам можно добавлять префикс ‘no-’, чтобы придать противоположное значение. Параметры:

import-local-sigs Разрешить импорт подписей ключей, помеченных как “local” (локальные). Обычно это не полезно, если не используется схема с общим ключевым кольцом. По умолчанию no.

keep-ownertrust Обычно возможные, но все еще существующие значения доверия (ownertrust) ключа очищаются, если ключ импортируется. Это в целом желательно, чтобы ранее удаленный ключ не получал автоматически значения доверия仅仅 из-за импорта. С другой стороны, иногда необходимо повторно импортировать набор доверенных ключей, сохраняя уже назначенные значения доверия. Этого можно достичь, используя эту опцию.

repair-pks-subkey-bug При импорте пытаться исправить повреждения, вызванные ошибкой keyserver PKS (версии до 0.9.6), которая искажает ключи с несколькими подключами. Обратите внимание, что это не может полностью восстановить поврежденный ключ, так как некоторые crucial данные удаляются keyserver’ом, но это, по крайней мере, возвращает вам один подключ. По умолчанию no для обычного --import и yes для keyserver --receive-keys.

import-show show-only Показывать список ключа непосредственно перед его сохранением. Это можно комбинировать с опцией --dry-run, чтобы только просмотреть ключи; опция show-only является ярлыком для этой комбинации. Команда --show-keys — это еще один ярлык для этого. Обратите внимание, что суффиксы, такие как ’#’ для строк “sec” и “sbb”, могут выводиться, а могут и нет.

import-export Запустить весь код импорта, но вместо сохранения ключа в локальное ключевое кольцо записать его в вывод. Опция экспорта export-dane влияет на вывод. Эта опция может быть использована, например, для удаления всех недействительных частей из ключа без необходимости его сохранять.

merge-only Во время импорта разрешать обновления существующих ключей, но не разрешать импорт любых новых ключей. По умолчанию no.

import-clean После импорта compact (удалить все подписи, кроме самоподписи) любые user ID из нового ключа, которые не пригодны для использования. Затем удалить любые подписи из нового ключа, которые не пригодны для использования. Это включает подписи, выпущенные ключами, которых нет в ключевом кольце. Эта опция эквивалентна выполнению команды --edit-key “clean” после импорта. По умолчанию no.

self-sigs-only Принимать только самоподписи при импорте ключа. Все другие подписи ключей пропускаются на раннем этапе импорта. Эту опцию можно использовать с keyserver-options для смягчения попыток flooding ключа поддельными подписями с keyserver’а. Недостаток заключается в том, что все другие действительные подписи ключей, требуемые Web of Trust, также не импортируются. Обратите внимание, что при использовании этой опции вместе с import-clean она подавляет финальный шаг очистки после объединения импортированного ключа с существующим ключом.

ignore-attributes Игнорировать все attribute user ID (photo ID) и их подписи при импорте ключа.

repair-keys После импорта исправлять различные проблемы с ключами. Например, это переупорядочивает подписи и удаляет дубликаты подписей. По умолчанию yes.

bulk-import При использовании keyboxd (опция use-keyboxd в common.conf) выполняет импорт в рамках одной транзакции.

import-minimal Импортировать минимально возможный ключ. Это удаляет все подписи, кроме самой последней самоподписи на каждом user ID. Эта опция эквивалентна выполнению команды --edit-key “minimize” после импорта. По умолчанию no.

restore import-restore Импортировать в режиме восстановления ключа. Это импортирует все данные, которые обычно пропускаются во время импорта; включая все специфичные для GnuPG данные. Все другие противоречащие опции переопределяются.

--import-filter {name=expr} --export-filter {name=expr} Эти опции определяют фильтр импорта/экспорта, который применяется к импортируемому/экспортируемому ключевому блоку непосредственно перед его сохранением/записью. name определяет тип используемого фильтра, expr — выражение для вычисления. Опцию можно использовать несколько раз, что добавляет больше выражений к тому же имени name.

Доступные типы фильтров:

keep-uid Этот фильтр будет сохранять пакет user id и зависящие от него пакеты в ключевом блоке, если выражение оценивается как истина.

drop-subkey Этот фильтр удаляет выбранные подключи. В настоящее время реализовано только для --export-filter.

drop-sig Этот фильтр удаляет выбранные подписи ключей на user ids. Самоподписи не рассматриваются. В настоящее время реализовано только для --import-filter.

select Этот фильтр реализован только для --list-filter. Можно использовать все имена свойств.

Синтаксис выражения см. в главе «ВЫРАЖЕНИЯ ФИЛЬТРА». Имена свойств для выражений зависят от фактического типа фильтра и указаны в следующей таблице. Обратите внимание, что все имена свойств также могут использоваться --list-filter.

Имена свойств могут иметь префикс с областью видимости, разделенной косой чертой. Допустимые области видимости: "pub" для открытых и секретных первичных ключей, "sub" для открытых и секретных подключей, "uid" для пакетов user-ID и "sig" для пакетов подписей. Неверные области видимости в настоящее время игнорируются.

Доступные свойства:

uid Строка с user id. (keep-uid)

mbox Часть addr-spec user id с почтовым ящиком или пустая строка. (keep-uid)

algostr Строка с описанием алгоритма ключа. Например, “rsa3072” или “ed25519”.

key_algo Число с алгоритмом открытого ключа пакета ключа или подключа. (drop-subkey)

key_size Число с эффективным размером ключа пакета ключа или подключа. (drop-subkey)

key_created key_created_d Первое — это метка времени создания пакета открытого ключа или подключа. Второе — то же самое, но представленное в виде строки ISO, например, “2016-08-17”. (drop-subkey)

key_expires key_expires_d Время истечения срока действия открытого ключа или подключа или 0, если срок действия не истекает. Второе — то же самое, но представленное в виде строки с датой ISO или пустой строки, например, “2038-01-19”.

fpr Шестнадцатеричный отпечаток (fingerprint) текущего подключа или первичного ключа. (drop-subkey)

primary Логическое значение, указывающее, является ли user id первичным. (keep-uid)

expired Логическое значение, указывающее, истек ли срок действия user id (keep-uid), ключа (drop-subkey) или подписи (drop-sig).

revoked Логическое значение, указывающее, был ли отозван user id (keep-uid) или ключ (drop-subkey).

disabled Логическое значение, указывающее, отключен ли первичный ключ.

secret Логическое значение, указывающее, является ли ключ или подключ секретным. (drop-subkey)

usage Строка, указывающая флаги использования для подключа, из последовательности «ecsa?». Например, подключ, способный только подписывать и аутентифицировать, будет точным совпадением для “sa”. (drop-subkey)

sig_created sig_created_d Первое — это метка времени создания пакета подписи. Второе — то же самое, но представленное в виде строки с датой ISO, например, “2016-08-17”. (drop-sig)

sig_expires sig_expires_d Время истечения срока действия пакета подписи или 0, если срок действия не истекает. Второе — то же самое, но представленное в виде строки с датой ISO или пустой строки, например, “2038-01-19”.

sig_algo Число с алгоритмом открытого ключа пакета подписи. (drop-sig)

sig_digest_algo Число с алгоритмом хеширования пакета подписи. (drop-sig)

origin Строка с происхождением ключа или вопросительный знак. Например, строка “wkd” используется, если ключ получен из Web Key Directory.

lastupd Метка времени последнего обновления ключа с keyserver’а или из Web Key Directory.

url Строка с URL, связанным с последним поиском ключа.

--export-options parameters Это строка, разделенная пробелами или запятыми, которая задает параметры для экспорта ключей. К параметрам можно добавлять префикс ‘no-’, чтобы придать противоположное значение. Параметры:

export-local-sigs Разрешить экспорт подписей ключей, помеченных как “local” (локальные). Обычно это не полезно, если не используется схема с общим ключевым кольцом. По умолчанию no.

export-attributes Включать attribute user IDs (photo IDs) при экспорте. Не включение attribute user IDs полезно для экспорта ключей, которые будут использоваться программой OpenPGP, не принимающей attribute user IDs. По умолчанию yes.

export-sensitive-revkeys Включать информацию о назначенном отзывающем (designated revoker), которая была помечена как “sensitive” (чувствительная). По умолчанию no.

backup export-backup Экспортировать для использования в качестве резервной копии. Экспортируемые данные включают все данные, необходимые для последующего восстановления ключа или ключей с помощью GnuPG. Формат基本上是 OpenPGP формат, но расширенный специфичными для GnuPG данными. Все другие противоречащие опции переопределяются.

export-clean Compact (удалить все подписи) user IDs экспортируемого ключа, если user IDs не пригодны для использования. Также не экспортировать любые подписи, которые не пригодны для использования. Это включает подписи, выпущенные ключами, которых нет в ключевом кольце. Эта опция эквивалентна выполнению команды --edit-key “clean” перед экспортом, за исключением того, что локальная копия ключа не изменяется. По умолчанию no.

export-minimal Экспортировать минимально возможный ключ. Это удаляет все подписи, кроме самой последней самоподписи на каждом user ID. Эта опция эквивалентна выполнению команды --edit-key “minimize” перед экспортом, за исключением того, что локальная копия ключа не изменяется. По умолчанию no.

export-revocs Экспортировать только отдельные (standalone) сертификаты отзыва ключа. Эта опция не экспортирует отзывы сторонних сертификатов отзыва.

export-dane Вместо вывода material ключа выводить записи OpenPGP DANE, пригодные для размещения в файлах зон DNS. Перед каждой записью выводится строка ORIGIN, чтобы позволить направлять записи в соответствующую зону.

mode1003 Включить использование нового формата экспорта секретного ключа. Этот формат избегает повторного шифрования, требуемого текущим форматом OpenPGP, а также улучшает безопасность секретного ключа, если он был защищен парольной фразой. Обратите внимание, что незащищенный ключ экспортируется как есть и, следовательно, небезопасен; общее правило передачи секретных ключей в зашифрованном OpenPGP файле все равно применяется в этом режиме. Версии GnuPG до 2.4.0 не могут импортировать такой секретный файл.

--with-colons Выводить списки ключей, разделенные двоеточиями. Обратите внимание, что вывод будет закодирован в UTF-8 независимо от каких-либо настроек --display-charset. Этот формат полезен, когда GnuPG вызывается из скриптов и других программ, так как он легко анализируется машиной. Подробности этого формата документированы в файле doc/DETAILS, который включен в дистрибутив исходного кода GnuPG.

--fixed-list-mode Не объединять primary user ID и primary key в режиме листинга --with-colon и выводить все метки времени в виде секунд с 1970-01-01. Начиная с GnuPG 2.0.10, этот режим всегда используется, и поэтому эта опция устарела; однако использовать ее не вредно.

--legacy-list-mode Вернуться к режиму списка открытых ключей до версии 2.1. Это влияет только на удобочитаемый вывод, а не на машинный интерфейс (т.е. --with-colons). Обратите внимание, что устаревший формат не передает подходящую информацию для эллиптических кривых.

--with-fingerprint То же, что и команда --fingerprint, но изменяет только формат вывода и может использоваться вместе с другой командой.

--with-subkey-fingerprint --without-subkey-fingerprint Если для первичного ключа выводится отпечаток, эта опция принудительно выводит отпечаток для всех подключей. Этого также можно было бы достичь, используя --with-fingerprint дважды, но используя эту опцию вместе с форматом keyid по умолчанию “none”, выводится compact отпечаток. Начиная с версии 2.6.0 эта опция активна по умолчанию; используйте вариант «without», чтобы отключить ее.

--with-v5-fingerprint В режиме листинга с двоеточиями выводить строки “fp2” для ключей OpenPGP версии 4, имеющих отпечаток ключа в стиле v5.

--with-icao-spelling Печатать spelling отпечатка по стандарту ICAO в дополнение к шестнадцатеричным цифрам.

--with-keygrip Включать keygrip в списки ключей. В режиме --with-colons это неявно включено для секретных ключей.

--with-key-origin Включать локально хранящуюся информацию о происхождении и последнем обновлении ключа в список ключей. В режиме --with-colons это выводится всегда. Эти данные в настоящее время являются экспериментальными и не должны рассматриваться как часть стабильного API.

--with-wkd-hash Выводить идентификатор Web Key Directory вместе с каждым user ID в списках ключей. Это экспериментальная функция, и семантика может измениться.

--with-secret Включать информацию о наличии секретного ключа в списках открытых ключей, выполненных с помощью --with-colons.


Таблица опций GnuPG

Опция (короткая)Опция (полная)Описание
-a--armorСоздавать вывод в формате ASCII-armor (защищенный ASCII).
--no-armorПредполагать, что входные данные не в формате ASCII-armor.
-o--output fileЗаписывать вывод в указанный файл. Используйте - для stdout.
--max-output nУстановить лимит (в байтах) на размер генерируемых данных. 0 = без лимита.
--chunk-size nУстановить размер блока (chunk) для AEAD шифрования (2^n байт, n=6..22).
--input-size-hint nСообщить GPG предполагаемый размер входных данных (в байтах) для оптимизации.
--key-origin string[,url]Установить происхождение импортируемых ключей.
--import-options parametersЗадать параметры импорта (см. список значений ниже).
--import-filter {name=expr}Применить фильтр к импортируемому ключевому блоку.
--export-filter {name=expr}Применить фильтр к экспортируемому ключевому блоку.
--export-options parametersЗадать параметры экспорта (см. список значений ниже).
--with-colonsВыводить списки ключей в машиночитаемом формате (разделены двоеточиями).
--fixed-list-mode(Устарело) Не объединять primary user ID и key, выводить время в секундах.
--legacy-list-modeИспользовать устаревший (до 2.1) формат человекочитаемого вывода.
--with-fingerprintВыводить отпечатки пальцев ключей (изменяет только формат вывода).
--with-subkey-fingerprintПринудительно выводить отпечатки для всех подключей (по умолчанию вкл. с 2.6.0).
--without-subkey-fingerprintОтключить вывод отпечатков для подключей.
--with-v5-fingerprintВ colon-режиме выводить строки “fp2” для v4 ключей с v5-отпечатком.
--with-icao-spellingВыводить spelling отпечатка по стандарту ICAO.
--with-keygripВключать keygrip в списки ключей.
--with-key-originВключать информацию о происхождении и времени обновления ключа.
--with-wkd-hashВыводить Web Key Directory хеш для каждого user ID.
--with-secretВключать информацию о наличии секретного ключа в списках открытых ключей (для --with-colons).

Параметры для --import-options:

ПараметрОписание
import-local-sigsРазрешить импорт подписей, помеченных как “local”.
keep-ownertrustСохранять существующие значения доверия (ownertrust) при импорте.
repair-pks-subkey-bugПытаться исправить ключи, поврежденные из-за ошибки keyserver PKS.
import-show, show-onlyПоказывать ключ перед сохранением. show-only + --dry-run = только просмотр.
import-exportЗапустить импорт, но записать результат в вывод, а не в keyring.
merge-onlyРазрешить только обновление существующих ключей, запретить импорт новых.
import-cleanОчистить ключ от невалидных user ID и подписей после импорта.
self-sigs-onlyИмпортировать только самоподписи, игнорируя все другие подписи ключей.
ignore-attributesИгнорировать attribute user IDs (photo IDs) и их подписи.
repair-keysИсправлять проблемы с ключами (упорядочить подписи, убрать дубли) после импорта.
bulk-importВыполнять импорт в keyboxd в рамках одной транзакции.
import-minimalИмпортировать минимальный ключ (только последние самоподписи на каждом user ID).
restore, import-restoreИмпорт в режиме восстановления (включает все данные, обычно пропускаемые).

Параметры для --export-options:

ПараметрОписание
export-local-sigsРазрешить экспорт подписей, помеченных как “local”.
export-attributesВключать attribute user IDs (photo IDs) в экспорт.
export-sensitive-revkeysВключать информацию о “sensitive” назначенных отзывающих (designated revokers).
backup, export-backupЭкспорт в формате резервной копии (включает все данные для восстановления).
export-cleanОчистить ключ от невалидных user ID и подписей перед экспортом (не изменяет локальный ключ).
export-minimalЭкспортировать минимальный ключ (только последние самоподписи на каждом user ID).
export-revocsЭкспортировать только standalone сертификаты отзыва.
export-daneВыводить записи OpenPGP DANE для DNS вместо material ключа.
mode1003Использовать новый, более безопасный формат экспорта секретных ключей (GnuPG >= 2.4.0).

Типы фильтров для --import-filter / --export-filter:

Тип фильтраОписание
keep-uidСохранять user ID пакет, если выражение истинно.
drop-subkeyУдалять выбранные подключи (только для --export-filter).
drop-sigУдалять выбранные подписи ключей (не самоподписи) (только для --import-filter).
selectФильтр для выбора (только для --list-filter).

4 - OpenGPG опции

Опции для настройки работы Open GPG

Специфичные опции для протокола OpenPGP

--force-ocb --force-aead Принудительно использовать AEAD шифрование вместо MDC шифрования. AEAD — это современный и более быстрый способ аутентифицированного шифрования, чем старый метод MDC. --force-aead является псевдонимом и устарел. См. также опцию --chunk-size.

--force-mdc --disable-mdc Эти опции устарели и не имеют эффекта начиная с GnuPG 2.2.8. MDC всегда используется, если только ключи не указывают, что можно использовать алгоритм AEAD, и в этом случае используется AEAD. Но обратите внимание: если исключительно требуется создание устаревшего сообщения без MDC, опция --rfc2440 позволяет это сделать.

--disable-signer-uid По умолчанию идентификатор пользователя (user ID) ключа подписи встраивается в подпись данных. На данный момент это делается только в том случае, если ключ подписи был указан с помощью local-user с использованием почтового адреса или с помощью sender. Эта информация может быть полезна проверяющему для поиска ключа; см. опцию --auto-key-retrieve.

--include-key-block --no-include-key-block Эта опция используется для встраивания фактического ключа подписи в подпись данных. Встраиваемый ключ сокращается до одного идентификатора пользователя и включает только подключ подписи, использованный для создания подписи, а также действительные подключи шифрования. Вся остальная информация удаляется из ключа, чтобы сохранить его, и, следовательно, подпись небольшой. Эта опция является аналогом опции gpgsm --include-certs в OpenPGP и позволяет получателю подписанного сообщения отвечать зашифрованно отправителю без использования каких-либо онлайн-каталогов для поиска ключа. По умолчанию установлено --no-include-key-block. См. также опцию --auto-key-import.

--personal-cipher-preferences string Установить список личных предпочтений шифров на строку string. Используйте gpg --version, чтобы получить список доступных алгоритмов, и используйте none, чтобы вообще не устанавливать предпочтений. Это позволяет пользователю безопасно переопределить алгоритм, выбранный предпочтениями ключа получателя, поскольку GPG будет выбирать только алгоритм, пригодный для использования всеми получателями. Самый высокорейтинговый шифр в этом списке также используется для команды шифрования --symmetric.

--personal-digest-preferences string Установить список личных предпочтений хеширования на строку string. Используйте gpg --version, чтобы получить список доступных алгоритмов, и используйте none, чтобы вообще не устанавливать предпочтений. Это позволяет пользователю безопасно переопределить алгоритм, выбранный предпочтениями ключа получателя, поскольку GPG будет выбирать только алгоритм, пригодный для использования всеми получателями. Самый высокорейтинговый алгоритм хеширования в этом списке также используется при подписании без шифрования (например, --clear-sign или --sign).

--personal-compress-preferences string Установить список личных предпочтений сжатия на строку string. Используйте gpg --version, чтобы получить список доступных алгоритмов, и используйте none, чтобы вообще не устанавливать предпочтений. Это позволяет пользователю безопасно переопределить алгоритм, выбранный предпочтениями ключа получателя, поскольку GPG будет выбирать только алгоритм, пригодный для использования всеми получателями. Самый высокорейтинговый алгоритм сжатия в этом списке также используется, когда нет ключей получателей для рассмотрения (например, --symmetric).

--s2k-cipher-algo name Использовать name в качестве алгоритма шифрования для симметричного шифрования с парольной фразой, если не заданы --personal-cipher-preferences и --cipher-algo. По умолчанию используется AES-128.

--s2k-digest-algo name Использовать name в качестве алгоритма хеширования, используемого для преобразования (mangling) парольных фраз для симметричного шифрования. По умолчанию используется SHA-1.

--s2k-mode n Выбирает способ преобразования парольных фраз для симметричного шифрования. Если n равно 0, будет использоваться обычная парольная фраза (что в целом не рекомендуется), 1 добавляет соль (salt) (которую не следует использовать) к парольной фразе, а 3 (по умолчанию) повторяет весь процесс несколько раз (см. --s2k-count).

--s2k-count n Указать, сколько раз повторяется процесс преобразования парольных фраз для симметричного шифрования. Это значение может находиться в диапазоне от 1024 до 65011712 включительно. Значение по умолчанию запрашивается у gpg-agent. Обратите внимание, что не все значения в диапазоне 1024–65011712 являются допустимыми, и если выбрано недопустимое значение, GnuPG округлит его до ближайшего допустимого значения. Эта опция имеет смысл только если --s2k-mode установлен в значение по умолчанию 3.


Таблица опций GnuPG (OpenPGP protocol specific)

Опция (полная)Описание
--force-ocb, --force-aeadПринудительно использовать современное AEAD шифрование вместо устаревшего MDC. --force-aead — устаревший псевдоним.
--force-mdc, --disable-mdcУстарели (не действуют с GnuPG 2.2.8). MDC используется всегда, если только ключи не предписывают использовать AEAD.
--disable-signer-uidНе внедрять идентификатор пользователя (User ID) ключа подписи в подпись данных.
--include-key-blockВстроить фактический ключ подписи (сокращенный) в подпись данных для облегчения ответного шифрования.
--no-include-key-blockПо умолчанию. Не встраивать ключ подписи в подпись данных.
--personal-cipher-preferences stringЗадать личный порядок предпочтения алгоритмов шифрования. none — сбросить предпочтения.
--personal-digest-preferences stringЗадать личный порядок предпочтения алгоритмов хеширования. none — сбросить предпочтения.
--personal-compress-preferences stringЗадать личный порядок предпочтения алгоритмов сжатия. none — сбросить предпочтения.
--s2k-cipher-algo nameЗадать алгоритм шифрования по умолчанию для симметричного шифрования (паролем). По умолчанию: AES-128.
--s2k-digest-algo nameЗадать алгоритм хеширования по умолчанию для преобразования парольных фраз. По умолчанию: SHA-1.
--s2k-mode nВыбрать метод преобразования парольной фразы. 0 - плохо, 1 - с солью (плохо), 3 - итерации (хорошо, по умолчанию).
--s2k-count nЗадать количество итераций для преобразования парольной фразы (если --s2k-mode=3). Диапазон: 1024–65011712. Значение по умолчанию запрашивается у gpg-agent.

5 - Опции соответствия

Эти опции контролируют, каким стандартам соответствует GnuPG. Одновременно может быть активна только одна из этих опций.

Опции соответствия (Compliance options)

Эти опции контролируют, каким стандартам соответствует GnuPG. Одновременно может быть активна только одна из этих опций. Если указано несколько опций, последняя из них отменяет все предыдущие. Обратите внимание, что настройка по умолчанию почти всегда является правильной. Перед использованием любой из этих опций ознакомьтесь с разделом «ВЗАИМОДЕЙСТВИЕ С ДРУГИМИ ПРОГРАММАМИ OPENPGP» ниже.

--gnupg Использовать стандартное поведение GnuPG. Это, по сути, поведение OpenPGP (см. --openpgp), но с расширениями из предлагаемого обновления OpenPGP и с некоторыми дополнительными обходными путями для распространенных проблем совместимости в разных версиях PGP. Это опция по умолчанию, поэтому обычно в ней нет необходимости, но она может быть полезна для переопределения другой опции соответствия в файле gpg.conf.

--openpgp Сбросить все параметры пакетов, шифрования и хеширования до строгого поведения OpenPGP. Эта опция подразумевает --allow-old-cipher-algos. Используйте эту опцию, чтобы сбросить все предыдущие настройки, такие как --s2k-*, --cipher-algo, --digest-algo и --compress-algo, к значениям, соответствующим OpenPGP. Все обходные пути для PGP отключены.

--rfc4880 Сбросить все параметры пакетов, шифрования и хеширования до строгого поведения RFC-4880. Эта опция подразумевает --allow-old-cipher-algos. Обратите внимание, что в настоящее время это то же самое, что и --openpgp.

--rfc4880bis Сбросить все параметры пакетов, шифрования и хеширования в строгое соответствие предлагаемым обновлениям RFC-4880.

--rfc2440 Сбросить все параметры пакетов, шифрования и хеширования до строгого поведения RFC-2440. Обратите внимание, что при использовании этой опции пакеты шифрования создаются в устаревшем режиме без защиты MDC. Это опасно, и поэтому должно использоваться только для экспериментов. Эта опция подразумевает --allow-old-cipher-algos. См. также опцию --ignore-mdc-error.

--pgp6 Эта опция устарела; она обрабатывается как псевдоним для --pgp7.

--pgp7 Настроить все параметры для максимального соответствия PGP 7. Это разрешало шифры IDEA, 3DES, CAST5, AES128, AES192, AES256 и TWOFISH, хеши MD5, SHA1 и RIPEMD160, а также алгоритмы сжатия “none” и ZIP. Эта опция подразумевает --escape-from-lines и отключает --throw-keyids.

--pgp8 Настроить все параметры для максимального соответствия PGP 8. PGP 8 гораздо ближе к стандарту OpenPGP, чем предыдущие версии PGP, поэтому все, что она делает, это отключает --throw-keyids и устанавливает --escape-from-lines. Разрешены все алгоритмы, кроме хешей SHA224, SHA384 и SHA512.

--compliance string Эта опция может быть использована вместо одной из опций выше. Допустимые значения для string — это названия опций выше (без двойного дефиса) и, возможно, другие, как показано при использовании "help" для string.

--min-rsa-length n Эта опция настраивает режим соответствия "de-vs" для более строгих требований к размеру ключа. Например, значение 3000 превращает ключи rsa2048 и dsa2048 в ключи, не соответствующие стандарту VS-NfD.

--require-pqc-encryption Эта опция принудительно требует использование квантово-устойчивых (quantum-resistant) алгоритмов шифрования. Если не все открытые ключи являются квантово-устойчивыми, шифрование завершится ошибкой. Использование алгоритма симметричного шифрования AES-256 также обеспечивается этой опцией. При расшифровке выводится предупреждение для всех неквантово-устойчивых ключей. На данный момент алгоритмы Kyber (ML-KEM768 и ML-KEM1024) и AES-256 считаются квантово-устойчивыми; Kyber всегда используется в композитной схеме вместе с классическим ECC-алгоритмом.

--disable-pqc-encryption Эта опция отключает использование квантово-устойчивых подключей и использует подключ с неквантово-устойчивым алгоритмом, если он доступен, или выдает ошибку в противном случае. Опция игнорируется, если активна --require-pqc-encryption.

--require-compliance Чтобы проверить, что данные были зашифрованы в соответствии с правилами текущего режима соответствия, пользователю gpg необходимо анализировать строки статуса (status lines). Это позволяет интерфейсам (frontends) обрабатывать проверку соответствия более гибким способом. Однако для использования в скриптах необходимый анализ строк статуса требует значительных усилий; вместо этого можно использовать эту опцию, чтобы убедиться, что процесс gpg завершится с ошибкой, если правила соответствия не выполнены. Обратите внимание, что в настоящее время эта опция имеет эффект только в режиме "de-vs".


Таблица опций соответствия GnuPG

ОпцияОписание
--gnupgПо умолчанию. Поведение GnuPG (OpenPGP + расширения + обходные пути для совместимости с PGP).
--openpgpСтрогое соответствие OpenPGP. Сбрасывает алгоритмы к стандартным значениям. Разрешает старые алгоритмы шифрования.
--rfc4880Строгое соответствие RFC-4880 (в настоящее время эквивалентно --openpgp). Разрешает старые алгоритмы шифрования.
--rfc4880bisСтрогое соответствие предлагаемым обновлениям RFC-4880.
--rfc2440Опасно. Строгое соответствие устаревшему RFC-2440. Создает шифрование без защиты MDC. Разрешает старые алгоритмы.
--pgp7Максимальная совместимость с PGP 7. Разрешает старые алгоритмы (IDEA, 3DES, CAST5, MD5 и др.), включает --escape-from-lines, отключает --throw-keyids.
--pgp8Совместимость с PGP 8. Близко к OpenPGP. Отключает --throw-keyids, включает --escape-from-lines. Запрещает только хеши SHA224/384/512.
--compliance stringУниверсальная опция. В качестве string используйте значения выше без -- (например, openpgp, rfc4880).
--min-rsa-length nУжесточает требования к размеру ключа в режиме "de-vs" (например, n=3000 сделает ключи RSA2048 несоответствующими).
--require-pqc-encryptionТребует использования квантово-устойчивых алгоритмов шифрования (Kyber) и AES-256. Шифрование завершится ошибкой, если не все ключи соответствуют.
--disable-pqc-encryptionОтключает использование квантово-устойчивых подключей. Предпочитает классические алгоритмы. Игнорируется, если активен --require-pqc-encryption.
--require-complianceЗаставляет gpg завершаться с ошибкой, если правила текущего режима соответствия (например, de-vs) не выполнены. Упрощает проверку в скриптах.

6 - Дополнительные опции

Дополнительные опции для настройки и управления pgp

Таблица опций GnuPG (PGP)

Опция (Оригинал)Короткая опцияПеревод на русский язык и пояснение
–dry-run-nПробный запуск. Не вносить никаких изменений (реализовано не полностью).
–list-onlyТолько список. Изменяет поведение некоторых команд. Похоже на --dry-run, но в некоторых случаях работает иначе.
–interactive-iИнтерактивный режим. Запрашивать подтверждение перед перезаписью любых файлов.
–compatibility-flags flagsФлаги совместимости. Установить флаги для обхода проблем, вызванных несоответствующими стандарту ключами или данными.
–debug-level levelУровень отладки. Выбрать уровень детализации отладочных сообщений для исследования проблем.
–debug flagsФлаги отладки. Установить конкретные флаги отладки. Полезно только для разработчиков.
–debug-allОтладка всё. Установить все полезные флаги отладки.
–debug-iolbfБуферизация вывода. Установить буферизацию stdout построчной.
–debug-set-iobuf-size nРазмер буфера I/O. Изменить размер буфера IOBUFs до n килобайт. Только для сопровождающих.
–debug-allow-large-chunksБольшие чанки. Для тестов позволяет указать размер блока до 4 ЭиБ.
–debug-ignore-expirationИгнорировать истечение срока. Пытается переопределить даты истечения срока действия ключа. Для тестов.
–faked-system-time epochПоддельное системное время. Устанавливает системное время назад или вперед. Только для тестирования.
–full-timestringsПолные строки времени. Изменяет формат вывода времени создания и истечения с даты на дату и время.
–enable-progress-filterФильтр прогресса. Включает вывод статуса PROGRESS для индикации прогресса обработки больших файлов.
–status-fd nДескриптор статуса. Записывает специальные статусные строки в файловый дескриптор n.
–status-file fileФайл статуса. То же, что и --status-fd, но записывает данные в файл.
–logger-fd nДескриптор лога. Записывает вывод лога в файловый дескриптор n, а не в STDERR.
–log-file, –logger-file fileФайл лога. То же, что и --logger-fd, но записывает данные в файл.
–log-timeВремя в логе. Добавляет ко всему лог-выводу временную метку, даже если файл лога не используется.
–attribute-fd nДескриптор атрибутов. Записывает подпакеты атрибутов в файловый дескриптор n.
–attribute-file fileФайл атрибутов. То же, что и --attribute-fd, но записывает данные в файл.
–comment stringКомментарий. Использовать string как строку комментария в чистых подписях и ASCII-зашифрованных сообщениях.
–no-commentsБез комментариев. Удалить все комментарии.
–emit-versionВыводить версию. Принудительно добавлять строку версии в ASCII-вывод.
–no-emit-versionНе выводить версию. Не добавлять строку версии (по умолчанию).
–sig-notation, –cert-notation, –set-notation {name=value}-NНотация подписи/сертификата. Поместить пару “имя=значение” в подпись в качестве данных нотации.
–known-notation nameИзвестная нотация. Добавить name в список известных критических нотаций подписи.
–sig-policy-url, –cert-policy-url, –set-policy-url stringURL политики. Использовать string как URL политики для подписей.
–sig-keyserver-url stringURL keyserver’а. Использовать string как предпочтительный URL keyserver’а для подписей данных.
–set-filename stringУстановить имя файла. Использовать string как имя файла, хранящееся внутри сообщений.
–for-your-eyes-onlyТолько для ваших глаз. Установить флаг ‘только для ваших глаз’ в сообщении.
–no-for-your-eyes-onlyНе только для ваших глаз. Отключить опцию выше.
–use-embedded-filenameИсп. встроенное имя файла. Попытаться создать файл с именем, встроенным в данные. Опасно.
–no-use-embedded-filenameНе исп. встроенное имя. Не использовать встроенное имя файла (по умолчанию).
–cipher-algo nameАлгоритм шифрования. Использовать name как алгоритм шифрования. Нарушает стандарт.
–digest-algo nameАлгоритм хеширования. Использовать name как алгоритм хеш-суммы. Нарушает стандарт.
–compress-algo nameАлгоритм сжатия. Использовать алгоритм сжатия name. Нарушает стандарт.
–cert-digest-algo nameАлгоритм хеша для сертификатов. Использовать name как алгоритм хеш-суммы при подписи ключа.
–disable-cipher-algo nameЗапретить алгоритм шифр. Никогда не разрешать использование алгоритма name.
–disable-pubkey-algo nameЗапретить алгоритм подписи. Никогда не разрешать использование алгоритма name.
–throw-keyidsСкрыть ID ключей. Не помещать ID ключей получателей в зашифрованные сообщения.
–no-throw-keyidsНе скрывать ID ключей. Отключает опцию выше.
–not-dash-escapedБез экранирования дефисом. Меняет поведение чистых подписей для использования с файлами патчей.
–escape-from-linesЭкранировать строки “From”. Обрабатывать строки, начинающиеся с “From “, особым образом.
–no-escape-from-linesНе экранировать “From”. Отключает опцию выше.
–passphrase-repeat nПовтор пароля. Указать, сколько раз запрашивать повторение новой парольной фразы.
–passphrase-fd nДескриптор пароля. Читать парольную фразу из файлового дескриптора n.
–passphrase-file fileФайл пароля. Читать парольную фразу из файла file.
–passphrase stringПарольная фраза. Использовать string как парольную фразу. Опасно.
–pinentry-mode modeРежим pinentry. Установить режим ввода пароля (ask, cancel, error, loopback).
–no-symkey-cacheОтключить кеш пароля. Отключает кеш парольных фраз, используемый для симметричного шифрования.
–request-origin originИсточник запроса. Сообщить GnuPG, откуда пришел запрос (local, remote, browser).
–command-fd nДескриптор команд. Читать пользовательский ввод для вопросов из файлового дескриптора n.
–command-file fileФайл команд. То же, что и --command-fd, но читает команды из файла.
–allow-non-selfsigned-uidРазрешить не самоподписанные UID. Разрешить импорт ключей с пользовательскими ID, которые не самоподписаны. Не рекомендуется.
–no-allow-non-selfsigned-uidЗапретить не самоподписанные UID. Запрещает опцию выше.
–allow-freeform-uidСвободная форма UID. Отключить все проверки формы пользовательского ID при генерации нового.
–ignore-time-conflictИгнорировать конфликт времени. Превратить проверки временных меток в предупреждения.
–ignore-valid-fromИгнорировать “действует с”. Разрешить использование подобранных ключей, созданных в будущем.
–ignore-crc-errorИгнорировать ошибку CRC. Позволить GnuPG игнорировать ошибки контрольной суммы CRC в ASCII-armor.
–ignore-mdc-errorИгнорировать ошибку MDC. Превратить сбой защиты целостности MDC в предупреждение. Используйте с осторожностью.
–allow-old-cipher-algosРазрешить старые шифры. Разрешить использование старых алгоритмов с размером блока 64 бита (3DES, IDEA).
–allow-weak-digest-algosРазрешить слабые хеши. Разрешить проверку подписей, сделанных со слабыми алгоритмами хеширования (напр., MD5).
–weak-digest nameСлабый хеш. Считать указанный алгоритм хеширования слабым.
–allow-weak-key-signaturesРазрешить слабые подписи ключей. Разрешить подписи ключей третьих сторон, сделанные с использованием SHA-1.
–override-compliance-checkПереопределить проверку соответствия. Устаревшая опция, больше не имеет эффекта.
–no-default-keyringБез ключевого кольца по умолчанию. Не добавлять ключевое кольцо по умолчанию в список keyring’ов.
–no-keyringБез ключевых колец. Не использовать никакие ключевые кольца вообще.
–skip-verifyПропустить проверку. Пропустить шаг проверки подписи для ускорения расшифровки.
–with-key-dataС данными ключа. Печатать данные открытого ключа в выводе списка.
–list-signatures, –list-sigsСписок подписей. То же, что --list-keys, но также列出 подписи (без их проверки).
–fast-list-modeБыстрый режим списка. Изменить вывод команд списка для более быстрой работы (опуская часть информации).
–no-literalБез literal. Не для нормального использования.
–set-filesizeУстановить размер файла. Не для нормального использования.
–show-session-keyПоказать сеансовый ключ. Показать сеансовый ключ, использованный для сообщения.
–show-only-session-keyТолько показать сеансовый ключ. Только показать сеансовый ключ, но не обрабатывать сообщение дальше.
–override-session-key stringПереопределить сеансовый ключ. Не использовать открытый ключ, а использовать указанный сеансовый ключ.
–override-session-key-fd fdПереопределить сеансовый ключ (fd). То же, что и выше, но ключ читается из файлового дескриптора.
–ask-sig-expireСпрашивать срок подписи. При создании подписи данных запрашивать срок ее действия.
–no-ask-sig-expireНе спрашивать срок подписи. Отключает опцию выше.
–default-sig-expire valueСрок подписи по умолчанию. Срок действия по умолчанию для подписей данных (напр., “2m”, “5y”).
–ask-cert-expireСпрашивать срок сертификата. При подписи ключа запрашивать срок действия подписи.
–no-ask-cert-expireНе спрашивать срок сертификата. Отключает опцию выше.
–default-cert-expire valueСрок сертификата по умолчанию. Срок действия по умолчанию для подписей ключей.
–default-new-key-algo stringАлгоритм ключа по умолчанию. Изменить алгоритмы по умолчанию для генерации ключей (напр., “ed25519/cert,sign+cv25519/encr”).
–no-auto-trust-new-keyНе доверять новому ключу автоматически. Не устанавливать доверие новому ключу в “ultimate” при создании.
–force-sign-keyПринудительная подпись ключа. Принудительно создавать подпись ключа, даже если она уже существует.
–forbid-gen-keyЗапретить генерацию ключа. Запретить использование команд генерации ключей.
–allow-secret-key-importРазрешить импорт секретных ключей. Устаревшая опция, не используется.
–allow-multiple-messagesРазрешить множественные сообщения. Устаревшая опция, не имеет эффекта.
–no-allow-multiple-messagesЗапретить множественные сообщения. Устаревшая опция, не имеет эффекта.
–enable-special-filenamesСпециальные имена файлов. Включить режим, где имена вида -&n ссылаются на файловый дескриптор n.
–disable-fd-translationОтключить трансляцию дескрипторов. Только для Windows.
–no-expensive-trust-checksБез дорогих проверок доверия. Только для экспериментального использования.
–preserve-permissionsСохранить права доступа. Не менять права доступа к файлу секретного ключа. Только для экспертов.
–default-preference-list stringСписок предпочтений по умолчанию. Установить список предпочтений по умолчанию для новых ключей.
–default-keyserver-url nameURL keyserver’а по умолчанию. Установить URL keyserver’а по умолчанию для записи в самоподписи.
–list-configСписок конфигурации. Показать различные внутренние параметры конфигурации GnuPG.
–list-gcrypt-configКонфигурация Libgcrypt. Показать параметры конфигурации Libgcrypt.
–gpgconf-listСписок для gpgconf. Аналогично --list-config, но для использования утилитой gpgconf.
–gpgconf-testТест gpgconf. Провести синтаксическую проверку файла конфигурации.
–chuid uidСменить пользователя. Сменить текущего пользователя на uid (число или имя). Только из-под root.

7 - Config

Создание и редактирование конфигурационного файла.

Файлы конфигурации

Существует несколько файлов конфигурации для управления определенными аспектами работы gpg. Если не указано иное, они ожидаются в текущем домашнем каталоге (см. опцию --homedir).

gpg.conf Это стандартный файл конфигурации, читаемый gpg при запуске. Он может содержать любые допустимые длинные опции; начальные два дефиса указывать не нужно, и опцию нельзя сокращать. Это имя по умолчанию можно изменить в командной строке (см. опцию gpg --options). Вам следует создавать резервные копии этого файла.

common.conf Это необязательный файл конфигурации, читаемый gpg при запуске. Он может содержать опции, относящиеся ко всем компонентам GnuPG. В настоящее время его основное использование — для опции "use-keyboxd". Если домашний каталог по умолчанию ~/.gnupg не существует, GnuPG создает этот каталог и файл common.conf с "use-keyboxd".

Примечание: В крупных системах полезно размещать предопределенные файлы в каталоге /usr/local/etc/skel/.gnupg, чтобы новые пользователи начинали работу с готовой конфигурацией. Для существующих пользователей предоставляется небольшой вспомогательный скрипт для создания этих файлов (см. addgnupghome).

Для внутренних целей gpg создает и поддерживает несколько других файлов; все они находятся в текущем домашнем каталоге (см. опцию --homedir). Только программа gpg может изменять эти файлы.

~/.gnupg Это домашний каталог по умолчанию, который используется, если не задана ни переменная окружения GNUPGHOME, ни опция --homedir.

~/.gnupg/pubring.gpg Публичный ключевой контейнер (keyring) в устаревшем формате. Вам следует создавать резервные копии этого файла.

Если этот файл недоступен, gpg по умолчанию использует новый формат keybox и создает файл pubring.kbx, если только этот файл уже не существует, в этом случае он также будет использоваться для ключей OpenPGP.

Примечание: Если существуют оба файла, pubring.gpg и pubring.kbx, но в последнем нет ключей OpenPGP, будет использоваться устаревший файл pubring.gpg. Будьте осторожны: версии GnuPG до 2.1 всегда будут использовать файл pubring.gpg, потому что они не знают о новом формате keybox. Если вам придется использовать GnuPG 1.4 для расшифровки архивных данных, вам следует сохранить этот файл.

~/.gnupg/pubring.gpg.lock Файл блокировки (lock file) для публичного ключевого контейнера.

~/.gnupg/pubring.kbx Публичный ключевой контейнер в новом формате keybox. Этот файл используется совместно с gpgsm. Вам следует создавать резервные копии этого файла. См. выше связь между этим файлом и его предшественником.

Чтобы преобразовать существующий файл pubring.gpg в формат keybox, вы сначала создаете резервную копию значений доверия (ownertrust), затем переименовываете pubring.gpg в publickeys.backup (чтобы он не распознавался любой версией GnuPG), запускаете импорт и, наконец, восстанавливаете значения доверия:

$ cd ~/.gnupg
$ gpg --export-ownertrust >otrust.lst
$ mv pubring.gpg publickeys.backup
$ gpg --import-options restore --import publickeys.backup
$ gpg --import-ownertrust otrust.lst

~/.gnupg/pubring.kbx.lock Файл блокировки для pubring.kbx.

~/.gnupg/secring.gpg Устаревший контейнер секретных ключей, используемый версиями GnuPG до 2.1. Он не используется GnuPG 2.1 и позднее. Вы можете захотеть сохранить его на случай, если вам придется использовать GnuPG 1.4 для расшифровки архивных данных.

~/.gnupg/secring.gpg.lock Файл блокировки для устаревшего контейнера секретных ключей.

~/.gnupg/.gpg-v21-migrated Файл, указывающий, что миграция на GnuPG 2.1 была выполнена.

~/.gnupg/trustdb.gpg База данных доверия (trust database). Нет необходимости создавать резервные копии этого файла; лучше создать резервную копию значений доверия владельца (см. опцию --export-ownertrust).

~/.gnupg/trustdb.gpg.lock Файл блокировки для базы данных доверия.

~/.gnupg/random_seed Файл, используемый для сохранения состояния внутреннего пула случайных чисел.

~/.gnupg/openpgp-revocs.d/ Это каталог, в котором gpg хранит предварительно сгенерированные отзывные сертификаты. Имя файла соответствует отпечатку OpenPGP соответствующего ключа. Рекомендуется создавать резервные копии этих сертификатов и, если основной закрытый ключ не хранится на диске, перемещать их на внешнее запоминающее устройство. Любой, кто имеет доступ к этим файлам, может отозвать соответствующий ключ. Вы можете распечатать их. Вам следует создавать резервные копии всех файлов в этом каталоге и позаботиться о том, чтобы эта резервная копия хранилась в надежном месте.

Работа дополнительно контролируется несколькими переменными окружения:

HOME Используется для определения местоположения домашнего каталога по умолчанию.

GNUPGHOME Если установлена, указывает каталог, используемый вместо "~/.gnupg".

GPG_AGENT_INFO Эта переменная устарела; она использовалась версиями GnuPG до 2.1.

PINENTRY_USER_DATA Это значение передается через gpg-agent в pinentry. Это полезно для передачи дополнительной информации пользовательскому pinentry.

COLUMNS LINES Используются для масштабирования некоторых дисплеев под полный размер экрана.

LANGUAGE Помимо своего использования в GNU, она используется в версии для W32 (Windows) для переопределения выбора языка, сделанного через реестр. Если она используется и установлена в допустимое и доступное имя языка (langid), файл с переводом загружается из gpgdir/gnupg.nls/langid.mo. Здесь gpgdir — это каталог, из которого был загружен бинарный файл gpg. Если его не удается загрузить, предпринимается попытка использовать реестр, и в крайнем случае используется родная система локалей Windows.

GNUPG_BUILD_ROOT Эта переменная используется только набором регрессионных тестов в качестве вспомогательного средства в операционных системах без надлежащей поддержки для определения имени текстового файла процесса.

GNUPG_EXEC_DEBUG_FLAGS Эта переменная позволяет включить диагностику для управления процессами. Ожидается десятичное числовое значение. Бит 0 включает общую диагностику, бит 1 включает определенные предупреждения в Windows.

GNUPG_ASSUME_COMPLIANCE Вспомогательная переменная для отладки, чтобы перевести систему в состояние предположения о соответствии. Например, в режиме de-vs это вернет 2023 в качестве идентификатора вместо 23.

При вызове компонента gpg-agent программа gpg отправляет набор переменных окружения в gpg-agent. Имена этих переменных можно перечислить с помощью команды:

gpg-connect-agent 'getinfo std_env_names' /bye | awk '$1=="D" {print $2}'