добавить ключ
При добавлении стороннего репозитория, в целях безопасности в ОС Debian и Ubuntu, принято добавлять ключ репозитория.
Очень часто на сайтах и
блогах выкладывают ссылки на репозитории, но ссылка на ключ не приводится.
Из-за чего возникают некрасивые надписи и различные ошибки в конце процесса обновления пакетов.

Если после обновления у Вас на экране возникает ошибка примерно следующего содержания:

Ошибка: http://wine.budgetdedicated.com jaunty Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 58403026387EE263
Вы можете запустить 'apt-get update' для исправления этих ошибок

В данном примере не найден открытый ключ репозитория Wine. Адрес репозитория http://wine.budgetdedicated.com, публичный ключ 58403026387EE263. В вашем случае адрес и код ключа могут отличаться.
Для решения сложившейся проблемы нам потребуется:

1. Проверить упоминание ключа на официальных серверах. Это требуется для подтверждения подлинности репозитория.

Серверы расположены в порядке значимости, поэтому нахождение ключа хотя бы на одном сервере является положительным результатом.
# gpg --keyserver keyserver.ubuntu.com --recv 58403026387EE263
# gpg --keyserver pgp.mit.edu --recv 58403026387EE263
# gpg --keyserver keyserver.pgp.com --recv 58403026387EE263

В ответ на экране должно отобразиться следующее:

gpg: запрашиваю ключ 387EE263 с hkp сервера keyserver.ubuntu.com
gpg: ключ 387EE263: "Scott Ritchie " не изменен
gpg: Всего обработано: 1
gpg: неизмененных: 1

Эти строки говорят , что ключ найден и подлинность репозитория подтверждена. В общем случае, информация выведенная на экран в дальнейшем не пригодится.

Об особых случаях будет рассказано ниже.

2. Следующим этапом добавляем недостающий ключ репозитория:
# gpg --export --armor 58403026387EE263 | sudo apt-key add -

В особых случаях добавить ключ репозитория в операционную систему будет эффективнее командой:

# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 387EE263

где используется имя key-сервера нашедшего ключ и число отмеченное в пункте №1.

В результате всех вышеизложенных действий проблема поиска недостающего ключа репозитория исчезнет навсегда.

вот ещё вариант того же самого:

gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907

gpg --export 07DC563D1F41B907 | apt-key add -

или

gpg --keyserver subkeys.pgp.net --recv-keys 07DC563D1F41B907 && gpg --export 07DC563D1F41B907 | apt-key add -

в случае если есть ссылка на ключ:
wget -O - http://deb.opera.com/archive.key | apt-key add -

(trinity kde3 )
apt-key adv --keyserver keyserver.quickbuild.pearsoncomputing.net --recv-keys 2B8638D0

(python 2.4 и 2.5)
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5BB92C09DB82666C

добавить недостающие ключи
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com `sudo aptitude update 2>&1 | grep -o '[0-9A-Z]\{16\}$' | xargs`

раблта с ключами
Содержание папки ~/.gnupg



openpgp-revocs.d/
Хранит ревокационные сертификаты — файлы, которые позволяют отозвать ключ, если ты потеряешь доступ к закрытому ключу.
Здесь GPG хранит отзывные (revocation) сертификаты — они нужны, чтобы отозвать ключ, если ты потерял доступ к закрытому ключу или считаешь его скомпрометированным.
Почему только один файл?
Ревокация всегда делается только для основного ключа (primary key). Подключи автоматически считаются отозванными, если отозван основной.
Файл имеет имя вроде:

1A95AEC441F587EFCF0E01C2470F283D2ED5D036.rev
Обрати внимание, что в конце хеша файла rev тот же ID, что и у основного ключа 470F283D2ED5D036.

private-keys-v1.d/
Здесь хранятся закрытые ключи в зашифрованном виде, каждый в виде отдельного файла.
Каждый файл представляет собой один криптографический ключ (ключевой материал), например:
Основной (primary) ключ (обычно используется для подписи и сертификации)
Подключи (subkeys), например для шифрования или подписи

Можно узнать, кто есть кто:

gpg --list-secret-keys --keyid-format LONG
Пример вывода:



sec — основной секретный ключ ([SC] — может Sign и Certify)
ssb — подчинённый ключ ([E] — может Encrypt)

Идентификаторы 470F283D2ED5D036 и 842EF49E соответствуют хэшам имён файлов в private-keys-v1.d.

Тип ключа Хранится в private-keys-v1.d/ Ревокационный сертификат
Основной ✅ (по Keygrip) ✅ (по fingerprint)
Подключ ✅ (по Keygrip) ❌ (отзывается через основной ключ)

pubring.kbx и pubring.kbx~
Это ключевые кольца, содержащие открытые ключи (твой и других, которых ты импортировал). Файл с ~ — резервная копия.

trustdb.gpg
База данных уровня доверия ключам (насколько ты доверяешь владельцам других ключей).


добавить ключ
sudo apt-key add repo.asc

В Ubuntu 20.04+ команда apt-key устарела и не рекомендуется к использованию
sudo mkdir -p /etc/apt/keyrings
curl -fsSL http://адрес_репы/название_репы/repo.gpg | sudo tee /etc/apt/keyrings/repo.gpg > /dev/null

/etc/apt/sources.list.d/build-system.list:
deb [signed-by=/etc/apt/keyrings/repo.gpg] http://адрес_репы/название_репы/repo название_репы main

проверить ключ в repo.gpg:
gpg --show-keys /etc/apt/keyrings/repo.gpg

удалить ключ
находим ключ
sudo apt-key list | grep -A 1 "My Repo"



удаляем пробелы из fingerprint:
ABCD1234567890EF1234567890EFABCD12345678

берём последние 8 символов:
12345678

удаляем ключ:
sudo apt-key del 12345678

конвертировать ключ
gpg --dearmor < repo.asc > repo.gpg

конвертировать обратно
gpg --no-default-keyring --keyring ./temp-keyring.gpg --import repo.gpg
gpg --no-default-keyring --keyring ./temp-keyring.gpg --armor --export > repo.asc

Проверить наличие ключей:
gpg --list-keys --keyid-format short
gpg --list-secret-keys --keyid-format=long
gpg --list-secret-keys --with-keygrip


Если нужен именно полный идентификатор (полный fingerprint) для точного экспорта и доверия
gpg --list-keys --with-fingerprint

Пример:



Здесь:
ABCD1234567890EF1234567890EFABCD12345678 — отпечаток (используется для точной идентификации).

Для экспорта лучше использовать его:
gpg --armor --export ABCD1234567890EF1234567890EFABCD12345678 > repo.asc

Создайть новый ключ:
gpg --full-generate-key

Импортировать ключ
gpg --import <файл с ключом>
gpg --batch --import /папка/ключ.gpg
gpg --batch --allow-secret-key-import --import /папка/ключ.gpg

Указать ключ для использования:
git config --global user.signingkey <keyid>

Подписать репу ключём
gpg --batch --yes --pinentry-mode loopback --passphrase пароль -abs --cipher-algo AES --digest-algo SHA512 -o Release.gpg Release
gpg --batch --yes --pinentry-mode loopback --passphrase пароль -abs --cipher-algo AES --digest-algo SHA512 -o Packages.gpg Packages

Создать ключ репы
gpg --export идентификатор > repo.gpg # например почта, полный fingerprint или последние 8 символов
gpg --armor --export идентификатор > repo.asc

Создать резервную копию ключей
Сохраним публичный и секретный ключи в ASCII-файлы.
gpg --armor --export your_email@example.com > public_key_backup.asc

# Закрытый (секретный) ключ
gpg --armor --export-secret-keys your_email@example.com > private_key_backup.asc
Важно: файл private_key_backup.asc должен храниться в зашифрованном архиве или на офлайн-носителе.

получить из закрытого открытый ключ
есть файл ключа
-----BEGIN PGP PRIVATE KEY BLOCK-----
...
-----END PGP PRIVATE KEY BLOCK-----

импортировать закрытый ключ
gpg --import private.key

Если ключ защищён паролем, GPG запросит его. После импорта закрытого ключа GPG автоматически добавит соответствующий открытый ключ в ваше ключевой кольцо.

gpg --list-secret-keys

Вывод будет примерно таким:



Здесь 1234ABCD5678EFGH — это идентификатор ключа. Используйте его для экспорта открытого ключа в файл, например, public.key:

экспортировать публичный ключ
gpg --armor --export 1234ABCD5678EFGH > public.key

Флаг --armor обеспечивает экспорт ключа в текстовом формате (ASCII), который выглядит так:

-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----

Файл repo.asc обычно используется для хранения открытого ключа, который клиенты могут импортировать для проверки подписей репозитория. Просто переименуйте или скопируйте экспортированный открытый ключ в repo.asc:
cp public.key repo.asc

Опубликовать публичный ключ на ключевом сервере
Выбор сервера (рекомендуемые):
keyserver.ubuntu.com

keys.openpgp.org (лучше для email-верификации, но не показывает uid сразу)

Пример отправки:
# Ubuntu keyserver
gpg --send-keys --keyserver keyserver.ubuntu.com 470F283D2ED5D036

Проверь, что ключ опубликован:
gpg --keyserver keyserver.ubuntu.com --search-keys your_email@example.com

Отозвать ключ
Ревокационный сертификат есть (в openpgp-revocs.d), но можно сгенерировать новый в файл, чтобы использовать при необходимости:
gpg --output revoke_cert.asc --gen-revoke 470F283D2ED5D036

Чтобы реально отозвать ключ, просто импортируй этот файл:
gpg --import revoke_cert.asc

А затем при желании — заново отправь его на ключевой сервер:
gpg --keyserver keyserver.ubuntu.com --send-keys 470F283D2ED5D036


http://uzverss.livejournal.com/30439.html - Добавление ключей, когда другие способы не помогли
http://uzverss.livejournal.com/10514.html - добавление ppa репозитория в debian

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

uzverss: (Default)
uzverss

December 2024

S M T W T F S
12345 67
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 10:05 am
Powered by Dreamwidth Studios