Найти в Дзене
Обыватель

🛠 Устранение предупреждения "Key is stored in legacy trusted.gpg keyring" в Debian 12 при обновлении пакетов

Если вы используете внешние репозитории (например, от Yandex, Google, Microsoft и др.) на Debian 12, то при выполнении apt update могли заметить предупреждение: W: http://repo.yandex.ru/yandex-disk/deb/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. Это предупреждение говорит о том, что вы используете устаревший способ хранения GPG-ключей — через единый файл /etc/apt/trusted.gpg. Современные версии apt рекомендуют использовать пофайловое хранилище ключей в /etc/apt/trusted.gpg.d/. Чтобы устранить это предупреждение и привести систему в соответствие с современными практиками безопасности, вы можете воспользоваться простым скриптом, приведённым ниже. Этот скрипт за раз перенесёт все ключи из старого хранилища в новое. 🔧 Bash-скрипт для переноса ключей: #!/bin/bash set -e echo "== Проверка на наличие устаревших GPG-ключей в /etc/apt/trusted.gpg ==" TMP_DIR=$(mktemp -d) gpg --no-default-keyr

Если вы используете внешние репозитории (например, от Yandex, Google, Microsoft и др.) на Debian 12, то при выполнении apt update могли заметить предупреждение:

W: http://repo.yandex.ru/yandex-disk/deb/dists/stable/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

Это предупреждение говорит о том, что вы используете устаревший способ хранения GPG-ключей — через единый файл /etc/apt/trusted.gpg. Современные версии apt рекомендуют использовать пофайловое хранилище ключей в /etc/apt/trusted.gpg.d/.

Чтобы устранить это предупреждение и привести систему в соответствие с современными практиками безопасности, вы можете воспользоваться простым скриптом, приведённым ниже. Этот скрипт за раз перенесёт все ключи из старого хранилища в новое.

🔧 Bash-скрипт для переноса ключей:

#!/bin/bash
set -e
echo "== Проверка на наличие устаревших GPG-ключей в /etc/apt/trusted.gpg =="
TMP_DIR=$(mktemp -d)
gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --export > "$TMP_DIR/all-legacy-keys.gpg"
gpg --no-default-keyring --keyring "$TMP_DIR/all-legacy-keys.gpg" --list-keys --with-colons | \
awk -F: '/^pub/ { print $5 }' | while read -r KEYID; do
echo "== Обработка ключа $KEYID =="
gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --export "$KEYID" > "$TMP_DIR/$KEYID.gpg"
sudo cp "$TMP_DIR/$KEYID.gpg" "/etc/apt/trusted.gpg.d/$KEYID.gpg"
echo "Ключ $KEYID перемещён в /etc/apt/trusted.gpg.d/$KEYID.gpg"
done
echo "== Все ключи экспортированы и перемещены. =="
echo "Если вы уверены, что всё прошло успешно, вы можете удалить legacy keyring:"
echo " sudo mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.bak"
rm -r "$TMP_DIR"
echo "Готово!"

Как использовать

  1. Скопируйте скрипт в файл, например, fix-legacy-apt-keys.sh.
  2. Сделайте его исполняемым:
    chmod +x fix-legacy-apt-keys.sh
  3. Запустите от имени администратора:
    sudo ./fix-legacy-apt-keys.sh
  4. После переноса ключей и успешной работы apt update — удалите старый keyring:
    sudo mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.bak

Если вы столкнулись с этой проблемой — теперь знаете, как её быстро решить. Скрипт подойдёт для большинства систем на базе Debian 12 и позволит поддерживать конфигурацию APT в актуальном состоянии.