Создание ключа подписи контента#
Ключи подписи обеспечивают проверку подлинности и целостности контента, который загружается в Private Automation Hub и используется для выполнения автоматизации. Приватный ключ применяется для подписания коллекций, а соответствующий публичный ключ – для проверки подписи системой Private Automation Hub и другими узлами.
Предупреждение
Приватный ключ должен храниться только на сервере, выполняющем подпись. Его компрометация позволит злоумышленникам выпускать доверенные (подписанные) пакеты. Никогда не передавайте приватный ключ третьим лицам.
Для создания ключа выполните следующие действия:
На любой машине создайте пару ключей GPG с помощью команды:
gpg --full-generate-keyВ результате выполнения команды запускается мастер создания ключа, который задает несколько интерактивных вопросов.
При ответе на вопросы придерживайтесь следующих рекомендаций:
тип ключа –
RSA and RSA;длина –
4096бит;срок действия – ограниченный, например, 2 года;
используйте пароль для дополнительной защиты.
Примечание
Подробное описание процесса создания ключей GPG см. в инструкции.
После генерации ключа убедитесь, что он появился в локальном хранилище с помощью команды:
gpg --list-keysКоманда выводит в терминал список ключей и их отпечатков (fingerprints), например:
sec rsa4096 2025-02-06 [SC] A90B44D4C5967DDF9280A737A92BB253E671651D uid [ultimate] John Dow (John Dow Personal GPG key) <johndow@example.com> ssb rsa4096 2025-02-06 [E]Здесь
A90B44D4C5967DDF9280A737A92BB253E671651D– отпечаток ключа.Экспортируйте публичный и приватный ключи:
gpg --export --armor <fingerprint> > public_key.asc \ gpg --export-secret-keys --armor <fingerprint> > private_key.asc
Здесь <fingerprint> – отпечаток ключа.
Подключитесь к установочному узлу.
Скопируйте файл
public_key.ascна установочный узел.В секцию
[all:vars]файлаinventoryдобавьте следующие параметры:automationhub_create_default_collection_signing_service='true' automationhub_auto_sign_collections='true' automationhub_require_content_approval='true' automationhub_collection_signing_service_key='/home/<user>/public_key.asc' automationhub_collection_signing_service_script='/home/<user>/collection_signing.sh'
Создайте файл
/home/<user>/collection_signing.shсо следующим содержимым:#!/usr/bin/env bash FILE_PATH=$1 SIGNATURE_PATH="$1.asc" ADMIN_ID="$PULP_SIGNING_KEY_FINGERPRINT" PASSWORD="<your_gpg_password>" GPG_OUTPUT=$(gpg --quiet --batch --pinentry-mode loopback --yes --passphrase \ "$PASSWORD" --homedir ~/.gnupg/ --detach-sign --default-key "$ADMIN_ID" \ --armor --output "$SIGNATURE_PATH" "$FILE_PATH" 2>&1) STATUS=$? if [ $STATUS -eq 0 ]; then echo "{\"file\": \"$FILE_PATH\", \"signature\": \"$SIGNATURE_PATH\"}" else echo "GPG signing failed: $GPG_OUTPUT" >&2 exit $STATUS fi
Здесь <your_gpg_password> – пароль, заданный при создании ключа GPG.
Сделайте файл исполняемым:
chmod +x /home/<user>/collection_signing.sh
Скопируйте файл
private_key.ascна узел Private Automation Hub и выполните следующие команды, чтобы импортировать его в хранилище ключей GPG, используемое Private Automation Hub:sudo install -o pulp -g pulp -m 600 </path/to/private_key.asc> /tmp/private_key.asc \ sudo -iu pulp gpg --import /tmp/private_key.asc
Здесь </path/to/private_key.asc> – путь к скопированному на узел Private Automation Hub файлу.
На установочном узле платформы в каталоге
/opt/rbta/aa/astra-automation-setup/выполните команду:sudo ./aa-setup