Команда Linux gpg
GPG (GNU Privacy Guard) — это инструмент реализации стандарта OpenPGP, разработанный проектом GNU, используемый для шифрования и дешифрования данных, а также создания и проверки цифровых подписей. Это открытая альтернатива PGP (Pretty Good Privacy), широко применяемая в таких сценариях, как шифрование файлов, защита электронной почты и проверка подписей программных пакетов.
Базовая структура синтаксиса
Базовый формат синтаксиса команды gpg выглядит следующим образом:
gpg [选项] [命令] [文件名]
Основные компоненты:
- Опции: Различные параметры, управляющие поведением GPG
- Команда: Указывает тип выполняемой операции
- Имя файла: Обрабатываемый файл (необязательно)
Общие параметры команд
Управление ключами
| Параметр | Описание |
|---|---|
--gen-key |
Создать новую пару ключей |
--list-keys |
Вывести все открытые ключи |
--list-secret-keys |
Вывести все закрытые ключи |
--delete-key |
Удалить открытый ключ |
--delete-secret-key |
Удалить закрытый ключ |
--import |
Импортировать ключ |
--export |
Экспортировать ключ |
Операции шифрования/расшифровки
| Параметр | Описание |
|---|---|
--encrypt (-e) |
Зашифровать |
--decrypt (-d) |
Расшифровать файл |
--sign (-s) |
Создать подпись |
--verify |
Проверить подпись |
--armor (-a) |
Создать вывод в формате ASCII |
Другие общие параметры
| Параметр | Описание |
|---|---|
--recipient (-r) |
Указать ключ получателя |
--output (-o) |
Укажите выходной файл |
--passphrase |
Укажите парольную фразу |
Примеры практического применения
1. Сгенерируйте пару ключей
gpg --gen-key
После выполнения он интерактивно запросит:
- Тип ключа (обычно выберите значение по умолчанию — RSA и RSA)
- Длина ключа (рекомендуется 4096 бит)
- Срок действия ключа
- Информация об идентификаторе пользователя (имя и электронная почта)
- Парольная фраза
2. Зашифруйте файл
gpg --encrypt --recipient alice@example.com --output secret.txt.gpg secret.txt
--recipientУкажите открытый ключ получателя (идентифицируется по электронной почте)--outputУкажите выходной файл после шифрования- Последний параметр — это исходный файл, который нужно зашифровать
3. Расшифровка файла
gpg --decrypt --output plain.txt secret.txt.gpg
Система запросит парольную фразу закрытого ключа
4. Создание и проверка подписи
Создать подпись:
gpg --sign --output document.sig document.txt
Проверить подпись:
gpg --verify document.sig document.txt
5. Экспорт открытого ключа
gpg --armor --export alice@example.com > alice.pub.asc
--armorЭта опция создаёт файл открытого ключа в формате ASCII
Практики управления ключами
Процесс работы со связкой ключей

Настройки отношений доверия к ключам
-
Импорт открытого ключа другого человека:
gpg --import bob.pub.asc
-
Проверьте отпечаток ключа:
gpg --fingerprint bob@example.com
-
Подпишите ключ, чтобы установить доверие:
gpg --sign-key bob@example.com
ЧАВО
1. Как избежать ввода пароля каждый раз при расшифровке?
Используйте gpg-agent для кэширования пароля:
gpg --use-agent --decrypt file.gpg
2. Как отозвать потерянный ключ?
-
Сгенерируйте сертификат отзыва:
gpg --gen-revoke your@email.com > revoke.asc
-
Опубликуйте сертификат отзыва:
gpg --import revoke.asc
3. Лучшие практики шифрования больших файлов?
Используйте симметричное шифрование в сочетании с асимметричным:
gpg --symmetric --cipher-algo AES256 largefile.iso
Вопросы безопасности
- Защита закрытого ключа: Файлы закрытого ключа следует надлежащим образом хранить, а также рекомендуются стойкие парольные фразы
- Резервное копирование ключей: Регулярно создавайте резервные копии связки ключей и сертификатов отзыва
- Выбор алгоритма: Рекомендуются стойкие алгоритмы шифрования, такие как AES-256 и RSA-4096
- Срок действия ключа: Установите разумный срок действия ключа и регулярно обновляйте его
- Утечка метаданных: Не сохраняйте такие метаданные, как имена файлов, при шифровании; можно использовать
--throw-keyidsoption
Освоив команду gpg, вы сможете эффективно защитить конфиденциальные данные и обеспечить безопасную передачу файлов и аутентификацию. Рекомендуется ознакомиться с различными операциями в тестовой среде перед фактическим использованием.
Другие расширения
Энциклопедия команд Linux