Шпаргалка по основным функциям PGP/GnuPG
Управление ключами⌗
man gpg2
Создание новой пары ключей, интерактивный режим. Необходимо будет указать тип ключа, полное имя и адрес электронной почты, последние не обязательно должны соответствовать вашим реальным данным. Также нужно будет указать длину ключа и срок действия. В конце будет запрошен пароль для защиты приватного ключа, рекомендуется его не забывать.
gpg2 --gen-key
После ввода всех параметров необходимо будет подождать, пока утилита генерирует случайные числа на основе пользовательского ввода и обращения к дискам. Пару ключей можно также создать в пакетном режиме, подробнее в документации GnuPG. Ключи хранятся в связке ключей (в Linux это ~/.gnupg/secring.pgp и ~/.gnupg/pubring.pgp).
Для отображения списка публичных ключей:
gpg2 --list-keys
Для приватных ключей:
gpg2 --list-secret-keys
Образец вывода команды:
/home/trefmanic/.gnupg/pubring.gpg
----------------------------------
pub 2048R/609BFCDA 2016-10-19
uid testkey (TEST) <testkey@nonexistent.domain>
sub 2048R/0884F56E 2016-10-19
Виден идентификатор пары ключей (609BFCDA), который можно использовать в качестве аргумента опции -r.
Зашифровка, расшифровка и подпись⌗
Для того, чтобы зашифровать файл plaintext.txt публичным ключом получателя testkey, три варианта:
gpg2 -e -r testkey plaintext.txt
gpg2 -e -r testkey@nonexistent.domain plaintext.txt
gpg2 -e -r 609BFCDA
По умолчанию создаётся бинарный файл plaintext.txt.pgp. Для создания ASCII-файла, пригодного к копированию/вставке, используйте опцию -a:
gpg2 -e -a -r testkey@nonexistent.domain plaintext.txt
Для подписи (без зашифровки) файла plaintext.txt:
gpg2 -u testkey@nonexistent.domain --detach-sign plaintext.txt
gpg2 -u testkey@nonexistent.domain -b plaintext.txt
После чего будет создан файл подписи plaintext.txt.sig. Для того, чтобы внедрить файл и подпись в один файл (НЕ будет зашифрован):
gpg2 -a -u testkey -s plaintext.txt
Чтобы извлечь документ из такого файла:
gpg2 --output plaintext.txt --decrypt plaintext.txt.asc
Для проверки подписи (в каталоге должен присутствовать оригинальный файл):
gpg2 --verify plaintext.txt.sig
Редактирование ключей, смена пароля приватного ключа⌗
Открыть ключ для редактирования (в интерактивном режиме) можно командой
gpg2 --edit-key testkey@nonexistent.domain
В этом режиме список доступных команд можно посмотреть при помощи команды help. После изменения данных они не сохраняются сразу, для сохранения и выхода необходимо использовать команду save. Для выхода без применения изменений — quit.
Чтобы быстро сменить пароль приватного ключа, используйте
gpg2 --passwd testkey@nonexistent.domain
Удаление ключей⌗
Удаление ключей - операция БЕЗВОЗВРАТНАЯ
Если необходимо удалить чужой публичный ключ из вашей связки (для которого нет пары — приватного ключа), используйте команду:
gpg2 --delete-key testkey@nonexistent.domain
Если попытаться удалить таким образом пару ключей, получите ошибку. В таком случае надо сперва удалить приватный ключ:
gpg2 gpg2 --delete-secret-key testkey@nonexistent.domain
После чего можно удалять публичный ключ командой выше.
На этом всё, для демонстрации возможностей GnuPG достаточно. Материалы взяты из man gpg2 и из этого блога. Ещё одна хорошая шпаргалка на английском языке