Пред: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]


4.5.4 Автоматическое создание ключей

Для автоматического создания ключей команду --genenerate-key можно использовать с параметром --batch. Это самый гибкий способ создания ключей, но и самый сложный. Подумайте, не подойдет ли вам быстрый способ манипуляции ключами, описанный в предыдущем подразделе, «Быстрая манипуляция ключами».

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

Управляющие конструкции:

%echo текст

Вывести текст в качестве диагностики.

%dry-run

Подавить действительное создание ключа (полезно для проверки синтаксиса).

%commit

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

%pubring имя файла

Записывать ключ не в исходную таблицу ключей и не в таблицу, данную в командной строке, а в указанный файл. Файл должен определяться до первой конструкции ‘%commit’, при повторном задании учитывается последняя конструкция, появившаяся перед ‘%commit’. Этот файл используется затем до тех пор, пока не появится новое имя файла (при выполнении конструкций ‘%commit’), и все ключи записываются в этот файл. Если задано новое имя файла, этот файл создается (или записывается поверх существующего).

Более защищенный от побочных эффектов способ описан в предыдущем подразделе, «Разовые домашние каталоги».

%secring имя файла

Этот параметр не влияет на работу GnuPG 2.1 и более поздних версий.

См. предыдущий подраздел, «Разовые домашние каталоги».

%ask-passphrase
%no-ask-passphrase

Этот параметр не влияет на работу GnuPG 2.1 и более поздних версий.

%no-protection

Параметр позволяет создавать ключи без защиты фразой-паролем. Предназначен в основном для испытаний.

%transient-key

Ключи создаются с помощью более быстрого и несколько менее безопасного генератора случайных чисел. Этот параметр используется для ключей, которые используются короткое время и не требуют полной криптографической защиты. Параметр действует только вместе с управляющей конструкцией ‘%no-protection’.

Общие параметры:

Key-Type: алгоритм

Открывает новый блок параметров, задавая тип первичного ключа. Алгоритм должен подходить для подписей. Это обязательный параметр. Аргументом может быть либо номер алгоритма OpenPGP, либо строка с названием алгоритма. Особое значение ‘default’ можно использовать для создания ключа с типом по умолчанию; в этом случае параметр ‘Key-Usage’ не должен быть задан, а значение ‘default’ должно использоваться и для ‘Subkey-Type’.

Key-Length: n

Заданная длина создаваемого ключа в битах. Исходное значение можно узнать, выполнив команду ‘gpg2 --gpgconf-list’.

Key-Grip: шестнадцатеричная строка

Необязательный параметр; используется для создания запроса на подпись сертификата или сертификата для уже существующего ключа. Параметр Key-Length при этом игнорируется.

Key-Usage: список

Список функций ключа с пробелом или запятой в качестве разделителя. Допустимы значения ‘encrypt’ (шифрование), ‘sign’ (подпись) и ‘auth’ (проверка подлинности). Используется для задания признаков ключа. Проверьте, пожалуйста, что алгоритм может выполнять эти функции. Обратите внимание, что OpenPGP требует, чтобы все первичные ключи могли проводить сертификацию, так что признак ‘cert’ будет установлен в любом случае. Если ‘Key-Usage’ не задан, а ‘Key-Type’ не равен ‘default’, устанавливаются все допустимые для конкретного алгоритма функции; если в качестве списка задан ‘default’, будет создан ключ для подписей (‘sign’).

Subkey-Type: алгоритм

Создает вторичный ключ (подключ). В настоящее время можно создавать только один подключ. См. выше ‘Key-Type’.

Subkey-Length: n

Заданная длина создаваемого вторичного ключа (подключа) в битах. Исходное значение можно узнать, выполнив команду ‘gpg2 --gpgconf-list’.

Subkey-Usage: список

Список функций подключа; аналогичен ‘Key-Usage’.

Passphrase: строка

Если хотите указать фразу-пароль для секретного ключа, введите ее здесь. По умолчанию для запроса фразы-пароля вызывается диалог программы ввода пароля.

Name-Real: имя
Name-Comment: примечание
Name-Email: адрес

Три части идентификатора пользователя. Не забудьте, что это UTF-8. Если вы не зададите хотя бы один из параметров, идентификатор пользователя не будет создан.

Expire-Date: дата ИСО|(число[d|w|m|y])

Задать срок действия ключа (и подключа). Это может быть либо дата в формате ИСО (e.g. "20000815T145012"), либо число дней, недель, месяцев или лет после даты создания. Допускается также особая запись «seconds=N» для указания числа секунд с момента создания. Число без буквы считается числом дней. Обратите внимание, что проверка переполнения типа, используемого в OpenPGP для меток времени, не проводится. Таким образом, лучше убедиться, что заданное значение имеет смысл. Хотя OpenPGP работает с интервалами времени, внутри GnuPG применяется абсолютное значение; таким образом, мы можем представлять годы до 2105.

Creation-Date: дата ИСО

Задать дату создания ключа, которая будет записана в ключе и которая входит в вычисление отпечатка. Это либо дата в виде «1986-04-26», либо полная метка времени в виде «19860426T042640». Время считается Всемирным координированным (UTC). Можно использовать также особую запись «seconds=N» для указания числа секунд от начала эпохи (время Unix). Если параметр не задан, используется текущее время.

Preferences: строка

Установить предпочтения для симметричных шифров, хеша и сжатия. Вид аргумента совпадает с аргументом подкоманды ‘setpref’ из меню --edit-key.

Revoker: алгоритм:отп [sensitive]

Добавить отзывающего для создаваемого ключа. В качестве алгоритма задается алгоритм шифрования с открытым ключом для отзывающего (т.е. RSA=1, DSA=17 и т.д.) Строка отп представляет отпечаток отзывающего ключа. Необязательный признак ‘sensitive’ помечает отзывающего как особо важную информацию. Отзывающими могут быть только ключи версии 4.

Keyserver: строка

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

Handle: строка

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

Вот пример создания ключа в разовом домашнем каталоге:

$ export GNUPGHOME="$(mktemp -d)"
$ cat >foo <<EOF
     %echo Создание простого ключа OpenPGP
     Key-Type: DSA
     Key-Length: 1024
     Subkey-Type: ELG-E
     Subkey-Length: 1024
     Name-Real: Яша Испытатель
     Name-Comment: с дурацкой фразой-паролем
     Name-Email: yi@test.mil
     Expire-Date: 0
     Passphrase: abc
     # Тут сохраним, чтоб можно было сказать "готово" :-)
     %commit
     %echo готово
EOF
$ gpg2 --batch --generate-key foo
 [...]
$ gpg2 --list-secret-keys
/tmp/tmp.0NQxB74PEf/pubring.kbx
-------------------------------
sec   dsa1024 2016-12-16 [SCA]
      768E895903FC1C44045C8CB95EEBDB71E9E849D0
uid           [абсолютно] Яша Испытатель (с дурацкой фразой-паролем) <yi@test.mil>
ssb   elg1024 2016-12-16 [E]

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

     %echo Создание ключа по умолчанию
     Key-Type: default
     Subkey-Type: default
     Name-Real: Яша Испытатель
     Name-Comment: с дурацкой фразой-паролем
     Name-Email: yi@test.mil
     Expire-Date: 0
     Passphrase: abc
     # Тут сохраним, чтоб можно было сказать "готово" :-)
     %commit
     %echo готово

Пред: , Вверх: Автоматическая работа GPG   [Содержание][Указатель]