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
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 ) не выполнены. Упрощает проверку в скриптах. |
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}'