Работа с PGP
Использование набора программ GPG (GNU ревлизация PGP).
Содержание
1 Экспорт ключей PGP
- Экспорт ключей
- Экспорт всех открытых ключей в текстовый файл в кодировке base64:
1gpg -a --export > mypubkeys.asc
- Экспорт всех зашифрованных закрытых ключей (которые также будут включать соответствующие открытые ключи) в текстовый файл:
1gpg -a --export-secret-keys > myprivatekeys.asc
- Опционально экспортируется
trustdb
gpg в текстовый файл:1gpg --export-ownertrust > otrust.txt
- Экспорт всех открытых ключей в текстовый файл в кодировке base64:
- Импорт ключей
- Выполните команды
gpg --import
для двух файловasc
, а затем проверьте наличие новых ключей с помощьюgpg -k
иgpg -K
: - При желании также импортируйте файл
trustdb
:1gpg --import-ownertrust otrust.txt
- Проверьте шифрование и дешифрование с помощью команд
gpg -er USERID
иgpg -d
.
- Выполните команды
2 gpg-agent
2.1 Общая информация
- Используется для временного хранения пароля.
- Предоставляются пользовательские сокеты
systemd
:- основной сокет
gpg-agent.socket
используется gpg для подключения к демонуgpg-agent
; - сокет
gpg-agent-extra.socket
на локальной системе используется для настройки переадресации Unix-сокета с удалённой системы; gpg-agent-browser.socket
позволяет веб-браузерам обращаться к демонуgpg-agent
;gpg-agent-ssh.socket
может использоваться SSH для кэширования ключей SSH, добавленных программой ssh-add;dirmngr.socket
запускает демон GnuPG, обрабатывающий соединения с серверами ключей.
- основной сокет
2.2 Запуск
- Активизируются сокеты, а не сам
gpg-agent
. - Запуск под управлением
systemd
:1systemctl --user enable --now gpg-agent.socket
2.3 Перезапуск агента
- После обновления настроек следует перезапустить агента, передав команду
RELOADAGENT
программеgpg-connect-agent
:1gpg-connect-agent reloadagent /bye
2.4 Настройка
- Настраивается в файле
~/.gnupg/gpg-agent.conf
. - Время жизни для ключей в кэше с момента последнего использования:
1default-cache-ttl 3600
2.5 pinentry
- gpg-agent использует pinentry для отображения диалога запроса пароля.
- Вариант диалога настраивается в файле настроек
~/.gnupg/gpg-agent.conf
. - Чтобы установить конкретный диалог, установите опцию
pinentry-program
в файле~/.gnupg/gpg-agent.conf
, например:1pinentry-program /usr/bin/pinentry-curses
- Существуют разные реализации pinentry.
- Просмотр реализаций:
- Gentoo:
1eselect pinentry list
- Gentoo:
2.6 Кэширование паролей
- Время кеширования определяется параметрами
max-cache-ttl
иdefault-cache-ttl
. - Чтобы вводить пароль всего один раз за сеанс, нужно установить их на очень высокое значение, например:
- Для кэширования паролей в режиме эмуляции SSH следует установить параметры
default-cache-ttl-ssh
иmax-cache-ttl-ssh
, например:
3 Шифрование
- Шифрование может быть симметричным и ассиметричным.
- Симметричное шифрование шифруется и расшифровывается приватным ключом или одной и той же парольной фразой.
- Ассиметричное шифрование шифруется публичным ключом, расшифровывается приватным.
3.1 Симметричное шифрование
- Зашифровать файл:
1gpg -c filename
или
1gpg --symmetric filename
- Расшифровать файл:
1gpg --decrypt-files filename.gpg
- Расшифровать файл с выводом на терминал:
1gpg --decrypt filename.gpg