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

Генерация GPG-ключей в Linux

• 5 min read • Безопасность • Обновлено 28 Nov 2025
Генерация GPG-ключей в Linux
Генерация GPG-ключей в Linux

Генерация GPG-ключей в Linux — иллюстрация процесса

Зачем использовать GPG

GPG (GnuPG) — реализация стандарта OpenPGP. Коротко: закрытый ключ храните приватно и защищайте парол-фразой; открытый ключ можно публиковать и использовать для шифрования сообщений вам. GPG позволяет обеспечивать конфиденциальность, целостность и аутентичность данных.

Установка GnuPG

Для большинства дистрибутивов установка простая. Откройте терминал и выполните команду, соответствующую вашей системе:

# Debian/Ubuntu
sudo apt update && sudo apt install gnupg

# Fedora (dnf) или старые системы с yum
sudo dnf install gnupg
# или
sudo yum install gnupg

# Arch Linux
sudo pacman -S gnupg

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

Генерация пары ключей

Используйте интерактивную генерацию ключа. Рекомендуемая команда (современный интерактивный режим):

gpg --full-generate-key

Если хотите использовать более старую короткую форму, работает и команда:

gpg --gen-key

Процесс запросит ваше полное имя и email, тип ключа и длину (2048/3072/4096 бит — 4096 даёт более сильную защиту, но немного медленнее). Дайте ключу разумный срок действия (например, 1 год) и установите надёжную парол-фразу.

Окно создания пары ключей GPG с вводом имени и email

Важно хранить парол-фразу в менеджере паролей или на физическом носителе. Без неё доступ к закрытому ключу будет затруднён или невозможен.

Запрос парол-фразы при создании GPG-ключа

Генерация ключа может занять некоторое время в зависимости от энтропии системы. Когда процесс завершится, вы увидите подтверждение и отпечаток ключа.

Подтверждение успешной генерации ключа и отпечаток

Базовые команды управления ключами

Показать отпечатки и список ключей:

gpg --list-keys
gpg --fingerprint

Создать резервную копию закрытого ключа и экспортировать его (храните файл в зашифрованном контейнере или на отдельном носителе):

# экспорт закрытого ключа (осторожно)
gpg --export-secret-keys --armor you@example.com > private-key.asc

# экспорт открытого ключа
gpg --armor --export you@example.com > public-key.asc

Импорт ключа:

gpg --import public-key.asc

Удаление ключа (локально):

# удалить открытый ключ
gpg --delete-key you@example.com
# удалить закрытый ключ
gpg --delete-secret-key you@example.com

Создание сертификата аннулирования (рекомендовано заранее)

Создайте сертификат отзыва сразу после генерации ключа. Храните его офлайн (USB, бумажная копия, сейф). Сертификат позволит отозвать ключ, если закрытый ключ будет скомпрометирован или потерян.

gpg --output revoke.asc --gen-revoke you@example.com

В процессе вам нужно будет указать причину отзыва. После создания поместите revoke.asc в несколько безопасных мест и не публикуйте его в открытом виде.

Выбор причины аннулирования ключа в GPG

Экспорт и публикация открытого ключа

Экспорт в читаемом ASCII-формате:

gpg --armor --output key.txt --export you@example.com

Отправка на публичный keyserver (например, MIT):

# найдите идентификатор ключа
gpg --fingerprint

# отправка ключа на сервер (обратите внимание: send-keys)
gpg --keyserver pgp.mit.edu --send-keys B852085C

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

Шифрование и расшифровка файлов

Шифрование одного файла для получателя:

gpg --encrypt --recipient 'you@example.com' --output encryptedfile.txt.gpg originalfile.txt

Шифрование для нескольких получателей: укажите несколько –recipient.

Расшифровка файла:

gpg --decrypt --output decrypted.txt encryptedfile.txt.gpg

При расшифровке GPG запросит парол-фразу для доступа к закрытому ключу.

Безопасность и лучшие практики

  • Храните закрытый ключ и сертификат аннулирования офлайн или в зашифрованном хранилище.
  • Используйте отдельные ключи/сабключи: один для подписи, другой для шифрования. Это уменьшает риск компрометации основного мастер-ключа.
  • Настройте срок действия ключей и обновляйте их по истечении.
  • Подумайте о хранении мастер-ключа на smartcard / YubiKey. Это защищает ключ от копирования.
  • Регулярно обновляйте GnuPG и зависимости ОС.

Что может пойти не так и как этого избежать

  • Потеря парол-фразы: если нет резервной копии закрытого ключа, восстановить доступ невозможно. Решение: хранить резервную копию закрытого ключа в безопасном хранилище и использовать менеджер паролей.
  • Компрометация закрытого ключа: немедленно используйте revoke.asc и опубликуйте отзыв на ключсервере.
  • Ошибка в идентификаторе при отправке на keyserver: проверяйте полные отпечатки, а не только последние 8 символов.
  • Недостаточная энтропия при генерации ключа на headless-сервере: используйте rngd/haveged или генерируйте ключи на локальной машине с достаточной энтропией.

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

  • S/MIME — полезно в корпоративной почте с инфраструктурой сертификатов.
  • age — современная простая альтернатива для файлового шифрования (меньше функционала подписи).
  • VeraCrypt — контейнеры для шифрования больших объёмов файлов.

Выбор зависит от сценария: для подписей и совместимости OpenPGP остаётся стандартом, для простого шифрования файлов подойдёт age или VeraCrypt.

Ролевые чеклисты

Разработчик

  • Сгенерировать пару ключей с 4096 бит.
  • Создать revoke.asc и положить в менеджер паролей/секретный бэкап.
  • Создать сабключ для шифрования и отдельный — для подписи.

Системный администратор

  • Развернуть ключсервер или настроить доверенные публичные репозитории.
  • Настроить обновление GnuPG и мониторинг аудита.

Журналист/правозащитник

  • Использовать smartcard для хранения ключа.
  • Иметь резервную копию revoke.asc в нескольких местах.

Миниметодика Быстрого Развертывания

  1. Установить gnupg.
  2. Выполнить gpg –full-generate-key и задать защитную парол-фразу.
  3. Создать revoke.asc и сохранить офлайн.
  4. Экспортировать открытый ключ и при необходимости отправить на keyserver.
  5. Шифровать/подписывать документы по необходимости.

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

  • Пара ключей создана и отображается в gpg –list-keys.
  • Сертификат аннулирования revoke.asc создан и сохранён в безопасном месте.
  • Открытый ключ экспортирован и успешно импортируется на другой машине.
  • Зашифрованный файл успешно расшифровывается локально с использованием парол-фразы.

Чек-лист на экстренный случай (инцидентная процедура)

  1. Если ключ скомпрометирован — опубликовать revoke.asc и отправить команду на keyserver:
    gpg –keyserver pgp.mit.edu –send-keys
  2. Информировать контакты, которые используют ваш ключ.
  3. Сгенерировать новую пару ключей и заново опубликовать открытый ключ.
  4. Отозвать все старые ключи в каталогах и сменить используемые ключи в автоматизированных процессах.

Короткая шпаргалка команд (cheat sheet)

# установка
sudo apt install gnupg

# генерация ключа
gpg --full-generate-key

# экспорт открытого ключа
gpg --armor --export you@example.com > public-key.asc

# экспорт закрытого ключа (для резервной копии)
gpg --export-secret-keys --armor you@example.com > private-key.asc

# шифрование
gpg --encrypt --recipient 'you@example.com' --output file.gpg file.txt

# расшифровка
gpg --decrypt --output file.txt file.gpg

# создать сертификат отзыва
gpg --output revoke.asc --gen-revoke you@example.com

# отправить на keyserver
gpg --keyserver pgp.mit.edu --send-keys B852085C

Конфиденциальность и соответствие требованиям

GPG сам по себе не передаёт персональные данные третьим лицам, но публикация открытого ключа делает ваш email публичным. Если вы работаете с персональными данными в ЕС, убедитесь, что используете шифрование и хранение данных в соответствии с GDPR: минимизируйте передачу, документируйте основания обработки и храните логи доступа.

Заключение

GPG — надёжный инструмент для шифрования, подписи и управления ключами. Немного времени, потраченное на правильную настройку (создание revoke.asc, использование сабключей и smartcard), обеспечивает значительный выигрыш в безопасности и спокойствии.

Важно: храните закрытые ключи и сертификаты отзыва в разных надёжных местах и регулярно пересматривайте политику сроков действия ключей.

Короткая версия для соцсетей

GnuPG позволяет легко и надёжно шифровать файлы и сообщения в Linux: установите gnupg, сгенерируйте ключ через gpg –full-generate-key, создайте revoke.asc, экспортируйте открытый ключ и используйте gpg –encrypt / gpg –decrypt.

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро