Red Hat Training

A Red Hat training course is available for Red Hat Satellite

3.2. Цифровая подпись пакетов RHN

Пакеты, которые предоставляет RHN, должны обладать цифровой подписью. Цифровая подпись создается с помощью уникального закрытого ключа, а для ее проверки используется открытый ключ. RPM с исходным кодом (SRPM, Source RPM) и созданный пакет можно подписать с помощью ключа GnuPG. Прежде чем пакет будет установлен, открытый ключ проверит подпись пакета и поможет убедиться, что он не подвергался изменениям.

3.2.1. Создание пары ключей GnuPG

Пара GnuPG включает открытый и закрытый ключ.
  1. В режиме root выполните
    gpg --gen-key
    При попытке выполнения этой команды от лица непривилегированного пользователя вы увидите сообщение
    gpg: Warning: using insecure memory!
    
    Это обозначает, что непривилегированные пользователи не могут блокировать страницы памяти. Так как наверняка вы не хотите, чтобы другие пользователи знали ключ GnuPG и пароль, пару ключей требуется создать в режиме root. Пользователь root может блокировать страницы памяти, то есть информация не будет записываться на диск.
  2. После запуска команды генерации ключей появится сообщение:
    	gpg (GnuPG) 1.2.6; Copyright (C) 2004 Free Software
    	Foundation, Inc.  This program comes with ABSOLUTELY NO
    	WARRANTY. This is free software, and you are welcome to
    	redistribute it under certain conditions. See the file COPYING
    	for details. Please select what kind of key you want: (1) DSA
    	and ElGamal (default) (2) DSA (sign only) (4) RSA (sign only)
    	Your selection?
    
  3. Примите значение (1) DSA and ElGamal, что позволит создать цифровую подпись. Введите 1 и нажмите Enter.
  4. Выберите длину ключа. Чем длиннее ключ, тем он надежней. Минимально рекомендуемый размер ключа — 1024 бит.
  5. По желанию можно указать срок действия ключа. Эту дату стоит сообщить всем пользователям, использующим открытый ключ, а после истечения срока предоставить новый ключ. Рекомендуется не указывать срок действия.
    Key does not expire at all Is this correct (y/n)?
    
  6. Введите y.
  7. Далее надо указать идентификатор пользователя, который должен содержать имя, электронный адрес и, дополнительно, комментарий. Информация будет запрошена постепенно, после чего можно просмотреть введенные данные.
  8. Введите пароль.

    Примечание

    При выборе пароля руководствуйтесь стандартными правилами: используйте комбинации букв нижнего и верхнего регистра, цифры и знаки пунктуации.
  9. После ввода и подтверждения пароля будут созданы ключи. Появится сообщение:
    We need to generate a lot of random bytes. It is a good idea to perform some
    other action (type on the keyboard, move the mouse, utilize the disks) 
    during the prime generation; this gives the random number generator a 
    better chance to gain enough entropy. 
    
    +++++.+++++.++++++++....++++++++++..+++++.+++++.+++++++.+++++++ +++.
    ++++++++++++++++++++++++++++++++++++++..........................++++
    
    Ключи будут помещены в каталог .gnupg в домашнем каталоге root.
Для их просмотра выполните
gpg --list-keys
Вывод команды:
/root/.gnupg/pubring.gpg ----------------  pub 1024D/B7085C8A 2002-02-18
 имя<you@example.com> 
sub 1024g/E12AF9C4 2002-02-18
Команда получения открытого ключа:
gpg --export -a 'имя' > public_key.txt
Ключ будет сохранен в файл public_key.txt.
Открытый ключ должен быть передан всем клиентам, которые будут получать пакеты с помощью up2date. Способы распространения этого ключа между клиентами в составе организации подробно рассматриваются в руководстве по настройке клиентов Red Hat Network.