Какова конечная цель: надежно установить данный пакет для ряда серверов.
У нас есть серверы, работающие в разных облачных центрах обработки данных. Мы устанавливаем на них наше приложение как deb
файл. В настоящее время мы загружаем обновления как deb
файлы через доступный скрипт. Это медленно, так как "главному" узлу необходимо обновить все машины.
Мы думаем, что было бы лучше, если бы мы могли просто выпустить sudo apt update <package>
для каждого узла.
А как насчет безопасности? Сервер репо должен быть в Интернете.
Таким образом, нам нужно будет убедиться, что пакет устанавливается безопасно. deb
файлы можно подписывать, но афаик dpkg-verify
только проверяет правильность подписи. Таким образом, вредоносный, но правильно подписанный пакет пройдет проверку verify.
Так могли бы мы
deb
только)Другой подход приемлем до тех пор, пока безопасность не будет поставлена под угрозу.
Если вы используете apt install
или анзибль apt
модуля для установки пакетов, то метаданные репо должны быть подписаны ключом, известным вашей системе, например, ключами подписи дистрибутива Ubuntu или любыми ключами, которые вы явно добавляете с помощью apt_key
доступный модуль. Все, что подписано неизвестным ключом или не подписано, будет отклонено.
Таким образом, вы можете просто создать подходящий репозиторий для хранения ваших пакетов, подписать его файл выпуска своим собственным ключом GPG и распространить этот открытый ключ на свои серверы.