Настроить менеджер пакетов APT
Инструкция описывает, как настроить менеджер пакетов APT
Подготовка GPG-ключа
GPG-ключ требуется для реестра с подписью метаданных. Подпись позволяет клиентам проверять подлинность пакетов с помощью GPG-ключа.
-
Сгенерируйте GPG-ключ с помощью утилиты GnuPG
:gpg --full-generate-keyПри запросе
passphraseоставьте поле пустым. -
Найдите идентификатор созданного GPG-ключа:
gpg --list-secret-keys --keyid-format=longРезультат:
/home/user/.gnupg/secring.gpg ------------------------------ sec 4096R/<идентификатор_GPG-ключа> 2024-01-01 [expires: 2026-01-01] uid User Name <user@example.com> ssb 4096R/XXXXXXXXXXXXXXXX 2024-01-01 -
Экспортируйте секретную часть GPG-ключа:
gpg --armor --export-secret-keys <идентификатор_GPG-ключа> -
Сохраните секретную часть GPG-ключа в секрет Yandex Lockbox по ключу
gpg_secret_key_value:yc lockbox secret create \ --name <имя_секрета> \ --payload "[{'key': 'gpg_secret_key_value', 'text_value': '$(gpg --armor --export-secret-keys <идентификатор_GPG-ключа>)'}]" -
Предоставьте сервисному агенту сервиса Cloud Registry доступ к содержимому секрета, назначив ему на этот секрет роль
lockbox.payloadViewer:yc lockbox secret add-access-binding \ --id <идентификатор_секрета> \ --role lockbox.payloadViewer \ --agent cloud-registry:control-plane \ --cloud-id <идентификатор_облака> -
Сохраните публичную часть GPG-ключа — она понадобится пользователям реестра:
gpg --armor --export <идентификатор_GPG-ключа> > public-key.asc
Настройка APT
Локальный реестр
-
Добавьте реестр в список источников
APT:Реестр с подписью метаданныхРеестр без подписи метаданных-
Скопируйте публичный GPG-ключ в директорию доверенных ключей APT:
cp /path/to/public-key.asc /usr/share/keyrings/ycr-pub.ascГде
/path/to/public-key.asc— путь к файлу с публичным GPG-ключом. -
Добавьте реестр в список источников
APT:echo "deb [signed-by=/usr/share/keyrings/ycr-pub.asc] https://registry.yandexcloud.net/debian/<идентификатор_реестра> <дистрибутив> <компонент>" \ >> /etc/apt/sources.list
Добавьте реестр с параметром
trusted=yes:echo "deb [trusted=yes] https://registry.yandexcloud.net/debian/<идентификатор_реестра> <дистрибутив> <компонент>" \ >> /etc/apt/sources.list -
-
Добавьте данные для аутентификации в файл
/etc/apt/auth.conf:IAM-токенAPI-ключmachine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login iam password <IAM-токен>machine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login api_key password <API-ключ>
Удаленный реестр
Публичный источник
-
Установите пакет с публичными ключами дистрибутива:
DebianUbuntuВыполните команду:
sudo apt install debian-archive-keyringКлюч будет доступен по пути
/usr/share/keyrings/debian-archive-keyring.gpg.Выполните команду:
sudo apt install ubuntu-keyringКлюч будет доступен по пути
/usr/share/keyrings/ubuntu-archive-keyring.gpg. -
Добавьте реестр в список источников
APT:echo "deb [signed-by=<путь_к_ключу>] https://registry.yandexcloud.net/debian/<идентификатор_реестра> <дистрибутив> <компонент>" \ >> /etc/apt/sources.listГде:
<путь_к_ключу>— путь к файлу с ключом дистрибутива, например/usr/share/keyrings/debian-archive-keyring.gpgили/usr/share/keyrings/ubuntu-archive-keyring.gpg.<идентификатор_реестра>— идентификатор реестра.<дистрибутив>— дистрибутив, напримерbookworm,bullseyeилиfocal.<компонент>— компонент репозитория, напримерmain.
-
Добавьте данные для аутентификации в файл
/etc/apt/auth.conf:IAM-токенAPI-ключmachine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login iam password <IAM-токен>machine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login api_key password <API-ключ>
Пользовательский источник
-
Добавьте реестр в список источников
APT:Источник подписан GPG-ключомИсточник не подписан GPG-ключом-
Сохраните его в директорию доверенных ключей:
cp /path/to/upstream-public-key.asc /usr/share/keyrings/upstream-pub.ascГде
/path/to/upstream-public-key.asc— путь к файлу с публичным ключом исходного репозитория (upstream). -
Добавьте реестр в список источников
APT:echo "deb [signed-by=/usr/share/keyrings/upstream-pub.asc] https://registry.yandexcloud.net/debian/<идентификатор_реестра> <дистрибутив> <компонент>" \ >> /etc/apt/sources.list
Укажите параметр
trusted=yes, чтобы APT принимал пакеты без проверки подлинности:echo "deb [trusted=yes] https://registry.yandexcloud.net/debian/<идентификатор_реестра> <дистрибутив> <компонент>" \ >> /etc/apt/sources.list -
-
Добавьте данные для аутентификации в файл
/etc/apt/auth.conf:IAM-токенAPI-ключmachine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login iam password <IAM-токен>machine https://registry.yandexcloud.net/debian/<идентификатор_реестра> login api_key password <API-ключ>
Важно
Менеджер пакетов APT не подставляет переменные окружения в файлы конфигурации. Чтобы защитить учетные данные, ограничьте доступ к файлу /etc/apt/auth.conf на уровне ОС.