Гид по технологиям

Резервная копия GPG-ключей на Linux

7 min read Linux Обновлено 28 Dec 2025
Резервная копия GPG-ключей на Linux
Резервная копия GPG-ключей на Linux

Ноутбук с Linux и командной строкой bash

  • Регулярно экспортируйте свои GPG-ключи и файл доверия (*.gpg) и храните их в безопасном месте.
  • Экспорт: gpg –export / –export-secret-keys / –export-ownertrust.
  • При восстановлении: gpg –import public.gpg; gpg –import private.gpg; gpg –import-ownertrust trust.gpg.

Быстрые ссылки

  • OpenPGP и GNU Privacy Guard
  • Каталог .gnupg
  • Какие ключи нужно сохранять
  • Резервное копирование и восстановление
  • Защита приватности и усиление безопасности

Важно: этот материал объясняет, как безопасно экспортировать и восстановить ваши GPG-ключи. Все команды даны точно; заменяйте примеры адресов и имён файлов на свои.

OpenPGP и GNU Privacy Guard

OpenPGP — это стандарт для шифрования с использованием публичных и приватных ключей. GNU Privacy Guard (GnuPG, или gpg) — наиболее распространённая реализация этого стандарта в Linux. Краткое определение: GPG — инструмент для шифрования/расшифровки и управления ключами.

Схема работы проста:

  • У каждого пользователя есть пара ключей: публичный и приватный.
  • Публичный ключ можно свободно распространять.
  • Приватный ключ никогда не должен покидать ваш контроль; он защищён фразой-паролем (passphrase).
  • Для расшифровки требуется именно та пара ключей, которой файл был шифрован.

Последствие: потеря приватного ключа делает недоступными все данные, зашифрованные этим ключом. Поэтому резервные копии ключей жизненно необходимы.

Каталог .gnupg

GPG хранит свои данные в скрытом каталоге $HOME/.gnupg. В нём находятся как ваши приватные ключи, так и публичные ключи других людей, которых вы импортировали.

Чтобы увидеть содержимое, удобно использовать утилиту tree (установите через репозиторий, если её нет):

tree .gnupg

Структура каталога .gnupg с поддиректориями и файлами

Типичное содержимое:

  • openpgp-revocs.d — сертификат отзыва (revocation certificate). Нужен, если приватный ключ скомпрометирован.
  • private-keys-v1.d — каталог, где хранятся приватные ключи.
  • pubring.kbx — база публичных ключей и метаданных (зашифрована).
  • pubring.kbx~ — резервная копия pubring.kbx, создаётся перед изменениями.
  • trustdb.gpg — база доверия: ваши оценки доверия к импортированным ключам.

Примечание: сами файлы не хранятся в открытом виде — приватные ключи защищены вашей фразой-паролем, но это не заменяет отдельного резервного копирования и мер безопасности.

Какие ключи нужно сохранять

Чтобы увидеть, какие секретные ключи у вас есть, выполните:

gpg --list-secret-keys --keyid-format LONG

Вывод списка секретных ключей в терминал

Разбор вывода:

  • Строка sec показывает размер ключа (в битах), его ID, дату создания и флаги (S — подписи, C — сертификация).
  • fingerprint — отпечаток ключа, уникальный идентификатор.
  • uid — цифровой идентификатор владельца (имя и email).
  • ssb — секретный субключ (обычно используется для шифрования; флаг E означает Encryption).

Если у вас несколько пар ключей для разных идентичностей, они будут перечислены.

Резервное копирование ключей (экспорт)

Мы обычно экспортируем три компонента:

  1. публичные ключи (включая ваши и импортированные)
  2. приватные ключи
  3. база доверия (ownertrust)

Общая рекомендация: используйте опцию –export-options backup, чтобы сохранить GPG-специфичную метаинформацию, необходимую для корректного импорта.

Экспорт публичных ключей:

gpg --export --export-options backup --output public.gpg

Если нужно экспортировать ключи только для одного адреса:

gpg --export --export-options backup --output public.gpg you@example.com

Экспорт приватных ключей (сохраните в отдельный файл):

gpg --export-secret-keys --export-options backup --output private.gpg

При экспорте приватных ключей GPG запросит вашу фразу-пароль (passphrase). Это не пароль учётной записи, а фраза, заданная при создании ключа. Храните её в менеджере паролей или в надёжном офлайн-хранилище.

Ввод фразы-пароля GPG для экспорта приватного ключа

Экспорт базы доверия:

gpg --export-ownertrust > trust.gpg

Это текстовый файл; его можно просмотреть через cat:

cat trust.gpg

Пример списка созданных файлов:

ls -hl *.gpg

Перенесите полученные файлы на внешний носитель или на другой компьютер. Если вы просто храните их для защиты, поместите в безопасный офлайн-распол�:

  • зашифрованный контейнер,
  • аппаратный криптоключ (см. раздел про безопасность),
  • безопасный сейф.

Если вы переносите ключи на другой компьютер, последовательность восстановления описана ниже.

Восстановление на другом компьютере (импорт)

Файлы могут быть импортированы на другой Linux-машине следующими командами:

gpg --import public.gpg

Импорт публичных ключей GPG

Затем приватный ключ:

gpg --import private.gpg

GPG запросит фразу-пароль для приватного ключа. Введите её.

Ввод фразы-пароля при импорте приватного ключа

Подтверждение успешного импорта:

gpg --list-secret-keys --keyid-format LONG

Проверка успешного импорта

Наконец, восстановите доверие:

gpg --import-ownertrust trust.gpg

Проверьте, что ключи и trust совпадают с исходной машиной.

Практические рекомендации по безопасности

Важно не только иметь резервные копии, но и хранить их безопасно. Вот проверенные подходы:

  • Храните приватные ключи в зашифрованном виде. Используйте gpg для симметричного шифрования файла-резервной копии:
gpg --symmetric --cipher-algo AES256 private.gpg
  • Делайте несколько копий: одна — на зашифрованном внешнем накопителе, одна — в «холодном» (офлайн) сейфе.
  • Никогда не храните приватный ключ в облаке без дополнительного шифрования.
  • Храните сертификат отзыва (revocation certificate) отдельно. Если ключ скомпрометирован, используйте сертификат для его отзыва.
  • Рассмотрите использование аппаратных токенов (YubiKey, Nitrokey). Приватный ключ никогда не покидает токен, а резервную копию держите в сейфе.

Краткая команда для создания зашифрованной резервной копии приватного файла:

gpg --symmetric --cipher-algo AES256 --output private.gpg.gpg private.gpg

И затем храните private.gpg.gpg в надёжном месте.

Мини‑методология: шаги для регулярной процедуры (SOP)

  1. Проверка: gpg –list-secret-keys –keyid-format LONG
  2. Экспорт публичного: gpg –export –export-options backup –output public.gpg
  3. Экспорт приватного: gpg –export-secret-keys –export-options backup –output private.gpg
  4. Экспорт доверия: gpg –export-ownertrust > trust.gpg
  5. Шифрование резервных файлов (рекомендация): gpg –symmetric –cipher-algo AES256 private.gpg
  6. Перенос на защищённый носитель / хранение в сейфе
  7. Документация: зафиксируйте место хранения и дату в безопасном журнале (офлайн)

Критерии приёмки

  • Все три файла (public.gpg, private.gpg или private.gpg.gpg, trust.gpg) существуют и читаются.
  • Приватный файл успешно расшифровывается локально.
  • На тестовой машине импорт проходит без ошибок и ключи отображаются: gpg –list-secret-keys.

Инцидентный план: если приватный ключ скомпрометирован

Шаги быстрого реагирования:

  1. Выпустите сертификат отзыва. Если у вас уже есть сохранённый revocation certificate, опубликуйте его в ключевых серверах и уведомьте корреспондентов.
  2. Отозвав ключ, создайте новую пару ключей и распространите новый публичный ключ.
  3. Обновите все места, где использовался старый ключ (сертификаты, доступы, подписи).
  4. Проанализируйте, как произошёл компромисс и закройте уязвимость.

Рекомендуемые действия при потере/компрометации:

  • Если вы не заранее сгенерировали revocation certificate, сделайте это сразу при создании ключа и храните офлайн.
  • Подпишитесь на уведомления о компрометации при работе в командах; оповестите контакты.

Когда резервное копирование не поможет (ограничения)

  • Если вы забыли фразу-пароль приватного ключа, экспортированный приватный файл бесполезен без неё.
  • Если ключи были скомпрометированы и вы не имеете revocation certificate, потребуется срочная коммуникация и замена ключей.

Альтернативные подходы и сценарии

  • Синхронизация .gnupg: вместо экспорта можно синхронизировать $HOME/.gnupg между машинами (rsync/ssh). Минусы: риск случайной перезаписи, перенос локальных сокетов и конфигураций.
  • Аппаратные токены: приватный ключ хранится внутри устройства — безопаснее, но сложнее для резервного копирования.
  • Менеджеры ключей и HSM (аппаратные модули безопасности): для корпоративных сред.

Чек-лист по ролям

Для индивидуального пользователя (домашний ПК):

  • Экспорт public.gpg, private.gpg, trust.gpg
  • Зашифровать private.gpg
  • Поместить копию в сейф

Для ноутбука:

  • Держать минимальный набор ключей; по возможности использовать субключи для шифрования
  • Хранить зашифрованную копию в облаке только в зашифрованном виде

Для сервера/DevOps:

  • Использовать HSM или выделенный ключевой менеджер
  • Ограничить доступ по правам и аудитировать экспорт ключей

Контрольные тесты и критерии приёмки

  • После импорта на тестовую машину выполните: gpg –list-secret-keys –keyid-format LONG и сверяйте отпечатки.
  • Попробуйте зашифровать тестовый файл с вашим публичным ключом и расшифровать его на машине с импортированным приватным ключом.

Пример:

echo "test" > hello.txt
gpg --encrypt --recipient you@example.com --output hello.gpg hello.txt
gpg --decrypt --output hello_out.txt hello.gpg
cat hello_out.txt  # должен показать "test"

Модель принятия решений (диаграмма)

flowchart TD
  A[Есть ли резервная копия приватного ключа?] -->|Да| B[Резерв зашифрован?]
  A -->|Нет| C[Создать резервную копию]
  B -->|Да| D[Хранить в сейфе и обновлять]
  B -->|Нет| E[Зашифровать и перенести в безопасное место]
  C --> F[Экспортировать public/secret/trust и зашифровать]
  E --> D
  F --> D

Факты в цифрах (справочная информация)

  • Типичные длины ключей: 2048, 3072, 4096 бит (4096 — высокий уровень безопасности).
  • Файлы экспорта: public.gpg, private.gpg, trust.gpg.
  • Revocation certificate существует отдельно и рекомендуется иметь его с самого начала.

Дополнительные советы по совместимости и миграции

  • Версии GnuPG: старые версии (gpg v1) хранят ключи иначе; убедитесь, что целевая машина использует совместимую версию GnuPG (gpg v2+).
  • Если при импорте вы видите сообщения об устаревших форматах, обновите GnuPG или проконсультируйтесь с документацией дистрибутива.

Примеры команд — шпаргалка

Экспорт:

gpg --export --export-options backup --output public.gpg
gpg --export-secret-keys --export-options backup --output private.gpg
gpg --export-ownertrust > trust.gpg

Импорт:

gpg --import public.gpg
gpg --import private.gpg
gpg --import-ownertrust trust.gpg

Шифрование резервной копии приватного файла:

gpg --symmetric --cipher-algo AES256 --output private.gpg.gpg private.gpg

Проверка работоспособности после импорта:

gpg --list-secret-keys --keyid-format LONG

Заключение

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

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Отключить рекламу в MIUI 12 на Xiaomi
Android.

Отключить рекламу в MIUI 12 на Xiaomi

Как подключить и настроить контроллеры в Steam
Игры

Как подключить и настроить контроллеры в Steam

Mi Band 5/6 как дистанционный пульт камеры
Гаджеты

Mi Band 5/6 как дистанционный пульт камеры

Как изменить шрифт на Samsung Galaxy
Мобильные устройства

Как изменить шрифт на Samsung Galaxy

Подготовка к собеседованию: Interview Prep на LinkedIn
Карьера

Подготовка к собеседованию: Interview Prep на LinkedIn

Как написать CV для IT — полное руководство
Карьера

Как написать CV для IT — полное руководство