# Apt предупреждает, что ключи в trusted.gpg.d игнорируются, а скопированный в keyrings ключ не принимается: куда и в каком формате класть ключи репозиториев

**URL:** <https://kryptos.forum/t/apt-preduprezhdaet-chto-klyuchi-v-trusted-gpg-d-ignoriruyutsya-a-skopirovannyj-v-keyrings-klyuch-ne-prinimaetsya-kuda-i-v-kakom-formate-klast-klyuchi-repozitoriev/264>\
**Category:** Виртуальные машины и серверы\
**Tags:** виртуальные-машины\
**Created:** [30.Сентябрь.2026 10:28:46 UTC](https://kryptos.forum/t/apt-preduprezhdaet-chto-klyuchi-v-trusted-gpg-d-ignoriruyutsya-a-skopirovannyj-v-keyrings-klyuch-ne-prinimaetsya-kuda-i-v-kakom-formate-klast-klyuchi-repozitoriev/264 "2026-09-30T10:28:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![team\_vm](https://kryptos.forum/letter_avatar_proxy/v4/letter/t/779978/32.png) [@team\_vm](https://kryptos.forum/u/team_vm)\
**Post date:** [30.Сентябрь.2026 10:28:46 UTC](https://kryptos.forum/t/apt-preduprezhdaet-chto-klyuchi-v-trusted-gpg-d-ignoriruyutsya-a-skopirovannyj-v-keyrings-klyuch-ne-prinimaetsya-kuda-i-v-kakom-formate-klast-klyuchi-repozitoriev/264/1 "2026-09-30T10:28:46Z")

</div>

**Что было.** Две связанные истории. В первой при `apt-get update` предупреждение: `The key(s) in the keyring /etc/apt/trusted.gpg.d/vendor.asc are ignored as the file is not readable by user '_apt'` (или просто «ignored»). Во второй администратор перенёс ключ из `trusted.gpg.d` в `/usr/share/keyrings/`, но apt отверг файл.

**Причины.**

1. `/etc/apt/trusted.gpg.d/` это устаревшее место: ключи оттуда доверяются **всем** репозиториям сразу, поэтому новые версии apt предупреждают о них, а источники в формате deb822 их не используют, если указан `Signed-By`. Ключи, на которые не ссылается ни один источник, «игнорируются».
2. Файлы ключей в ASCII-формате (`.asc`, начинаются с `-----BEGIN PGP PUBLIC KEY BLOCK-----`) apt в `Signed-By` принимает только начиная с определённых версий, и то с расширением `.asc`; бинарный `.gpg` работает везде. Простое копирование `.asc` под именем `.gpg` не работает. Автор второй истории получил рабочий файл, прогнав ключ через `gpg --dearmor` при скачивании. Обе истории подтверждены.

**Правильная последовательность для стороннего репозитория.**

```auto
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://repo.example.com/keys/example.asc | gpg --dearmor | sudo tee /etc/apt/keyrings/example.gpg >/dev/null
sudo chmod 644 /etc/apt/keyrings/example.gpg

```

Источник в `/etc/apt/sources.list.d/example.sources`:

```auto
Types: deb
URIs: https://repo.example.com/debian
Suites: bookworm
Components: main
Signed-By: /etc/apt/keyrings/example.gpg

```

Проверка ключа до установки: `gpg --show-keys /etc/apt/keyrings/example.gpg` и сравнение отпечатка с опубликованным поставщиком. `/etc/apt/keyrings/` для ключей, добавленных администратором; `/usr/share/keyrings/` для ключей из пакетов.

**Как навести порядок в существующей системе.**

1. `ls /etc/apt/trusted.gpg.d/` и `apt-key list` (пока команда существует): что лежит в устаревших местах.
2. Для каждого ключа найти репозиторий (`grep -r URIs\|^deb /etc/apt/sources.list*`) и перевести его на `Signed-By`.
3. Убрать ключи из `trusted.gpg.d` и удалить `/etc/apt/trusted.gpg`, если он есть.
4. `apt update` без предупреждений.

**Почему это не только косметика.** Ключ в `trusted.gpg.d` подписывает любой репозиторий: если один из сторонних репозиториев скомпрометирован, его подпись примут и для пакетов, «притворяющихся» системными. `Signed-By` привязывает ключ к одному источнику.

Схема описана в [документации Debian](https://wiki.debian.org/DebianRepository/UseThirdParty).
