Генерация 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 --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 в несколько безопасных мест и не публикуйте его в открытом виде.

Экспорт и публикация открытого ключа
Экспорт в читаемом 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 в нескольких местах.
Миниметодика Быстрого Развертывания
- Установить gnupg.
- Выполнить gpg –full-generate-key и задать защитную парол-фразу.
- Создать revoke.asc и сохранить офлайн.
- Экспортировать открытый ключ и при необходимости отправить на keyserver.
- Шифровать/подписывать документы по необходимости.
Критерии приёмки
- Пара ключей создана и отображается в gpg –list-keys.
- Сертификат аннулирования revoke.asc создан и сохранён в безопасном месте.
- Открытый ключ экспортирован и успешно импортируется на другой машине.
- Зашифрованный файл успешно расшифровывается локально с использованием парол-фразы.
Чек-лист на экстренный случай (инцидентная процедура)
- Если ключ скомпрометирован — опубликовать revoke.asc и отправить команду на keyserver:
gpg –keyserver pgp.mit.edu –send-keys - Информировать контакты, которые используют ваш ключ.
- Сгенерировать новую пару ключей и заново опубликовать открытый ключ.
- Отозвать все старые ключи в каталогах и сменить используемые ключи в автоматизированных процессах.
Короткая шпаргалка команд (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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента