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