Использование gpg в Linux

Могут возникнуть и другие ситуации, когда вам понадобится зашифровать файлы или электронные письма. Отличным инструментом для подобных целей является GNU Privacy Guard (также известный как GnuPG или просто GPG)

    Базовая настройка, использование и отзыв сертификатов GnuPG

    Как и в случае с SSH, в основе GPG лежит асимметричная криптография или криптография с открытым ключом.
    Ключи математически связаны таким образом, что зашифрованное одним ключом сообщение может быть расшифровано только с помощью другого.
    Для успешной коммуникации пользователь должен отправить свой открытый ключ адресату.

    gpg --gen-key ... gpg: создан каталог '/home/chich/.gnupg/openpgp-revocs.d' gpg: сертификат отзыва записан в '/home/chich/.gnupg/openpgp-revocs.d/9672B92FB101BD677C07D4416C8AA31A59B5C1CB.rev'. открытый и секретный ключи созданы и подписаны. ... #Содержимое каталога ls -la .gnupg итого 28 drwx------ 4 chich chich 4096 мая 10 16:16 . drwxr-x--- 35 chich chich 4096 мая 10 16:12 .. drwx------ 2 chich chich 4096 мая 10 16:16 openpgp-revocs.d drwx------ 2 chich chich 4096 мая 10 16:16 private-keys-v1.d -rw-rw-r-- 1 chich chich 645 мая 10 16:16 pubring.kbx -rw------- 1 chich chich 32 апр 10 16:06 pubring.kbx~ -rw------- 1 chich chich 1240 мая 10 16:16 trustdb.gpg

    openpgp-revocs.d - Здесь хранится сертификат отзыва, созданный вместе с парой ключей
    private-keys-v1.d - В этом каталоге хранятся ваши закрытые ключи, поэтому доступ к нему ограничен
    pubring.kbx - Это ваш публичный ключ. В нем хранятся ваш собственный и все импортированные открытые ключи.
    trustdb.gpg - База данных о доверии. Это связано с концепцией сети доверия


    С выходом GnuPG 2.1 появилось несколько существенных изменений, таких как замена файлов secring.gpg и pubring.gpg на private-keys-v1.d и pubring.kbx соответственно.

    #просмотреть свои открытые ключи #Шестнадцатеричная строка в выводе, это отпечаток открытого ключа gpg --list-keys #проверить отпечаток своего ключа gpg --fingerprint Chich
    Распространение и отзыв ключей

    Теперь, когда у вас есть открытый ключ, вам следует сохранить его (то есть экспортировать) в файл, чтобы он был доступен вашим будущим получателям
    С его помощью они смогут шифровать файлы или сообщения, предназначенные для вас (поскольку только у вас есть закрытый ключ, только вы сможете их расшифровать и прочитать).
    Точно так же ваши получатели смогут использовать его для расшифровки и проверки ваших зашифрованных или подписанных сообщений/файлов.
    Используйте команду gpg --export с последующим USER-ID и перенаправлением на выходной файл с выбранным вами именем:

    gpg --export Chich > chich.pub.key

    Если передать параметр -a или --armor в gpg --export (например, gpg --export --armor Chich > chich.pub.key), будет создан защищенный вывод в формате ASCII (вместо стандартного двоичного формата OpenPGP), который можно безопасно отправить по электронной почте.


    Теперь вам нужно отправить файл с открытым ключом (chich.pub.key) получателю, с которым вы хотите обменяться информацией.
    Получатель может использовать открытый ключ для шифрования файла для обмена с отправителем

    Другой способ распространения открытых ключей — использование серверов ключей: вы загружаете свой открытый ключ на сервер с помощью команды gpg --keyserver keyserver-name --send-keys KEY-ID, а другие пользователи получают (то есть импортируют) их с помощью gpg --keyserver keyserver-name --recv-keys KEY-ID.

    Отзыв ключей

    Отзыв ключей следует использовать в случае, если ваши закрытые ключи были скомпрометированы или выведены из эксплуатации.
    Сначала нужно создать сертификат отзыва, передав gpg опцию --gen-revoke с последующим указанием USER-ID
    Перед --gen-revoke можно указать опцию --output с последующим указанием имени файла назначения, чтобы сохранить полученный сертификат в файл (вместо того, чтобы выводить его на экран терминала)

    #Создать сертификат отзыва gpg --gen-revoke Chich #Вывод в файл gpg --output revocation_file.asc --gen-revoke sonya

    Чтобы эффективно отозвать закрытый ключ, вам нужно объединить сертификат с ключом. Для этого импортируйте файл сертификата отзыва в свою связку ключей:

    gpg --import revocation_file.asc
    Использование GPG для шифрования, дешифрования, подписания и проверки файлов

    Получатель должен импортировать открытый ключ Chich (chich.pub.key) в свою связку ключей, чтобы начать с ним работать:

    #Импорт ключа gpg --import chich.pub.key gpg --list-keys #Создать файл с содержимым echo "This is the message ..." > unencrypted-message #Зашифровать файл gpg --output encrypted-message --recipient Chich --armor --encrypt unencrypted-message #Зашифрованный файл будет отправлен пользователю Chich например с помощью scp или rsync

    Поскольку у вас есть закрытый ключ, вы можете легко расшифровать сообщение, передав gpg параметр --decrypt и указав путь к зашифрованному файлу (потребуется парольная фраза закрытого ключа):

    gpg --decrypt ../crypt-message
    Подписание и проверка файлов

    Помимо шифрования, GPG можно использовать для подписи файлов. Здесь актуальна опция --sign . Давайте начнем с создания нового сообщения (message) и подпишем его с помощью опции --sign (потребуется парольная фраза вашего закрытого ключа):

    echo "Это сообщение для подписи ..." > message gpg --output message.sig --sign message

    --output message - Имя файла с подписанной версией исходного файла (message.sig в нашем примере).
    --sign message - Путь к исходному файлу.


    С помощью --sign документ сжимается, а затем подписывается. Результат сохраняется в двоичном формате.

    Далее мы отправим файл получателю, а получатель сможет проверить файл на наличие подписи

    gpg --verify message.sig #Чтобы прочитать файл, его нужно расшифровать и сохранить в новый файл gpg --output message --decrypt message.sig
    GPG-Агент

    gpg-agent — это демон, который управляет закрытыми ключами для GPG (он запускается по запросу gpg). Чтобы просмотреть список наиболее полезных опций, запустите gpg-agent --help или gpg-agent -h:

    gpg-agent --help


    Источник: https://learning.lpi.org/en/learning-materials/102-500/110/110.3/110.3_02/

    keyrings

    Каталог /etc/apt/keyrings в системе APT используется для хранения ключей, которые управляются администратором системы.
    В этом каталоге хранятся индивидуальные ключи репозиториев. Каждый ключ привязан к конкретному репозиторию, что повышает безопасность, так как APT доверяет только ключам, явно указанным для конкретного источника.
    Ключи должны быть в формате OpenPGP с расширением .gpg. Если ключ распространяется в формате ASCII (.asc), его необходимо конвертировать с помощью утилиты gpg (например, с параметром --dearmor)
    Рекомендуется давать осмысленные имена файлам ключей, чтобы было понятно, к какому репозиторию они относятся.
    Чтобы использовать ключ из /etc/apt/keyrings, в конфигурации репозитория (в файле /etc/apt/sources.list или в файлах каталога /etc/apt/sources.list.d/) с помощью параметра signed-by указывается путь к файлу с ключом. Например:

    deb [signed-by=/etc/apt/keyrings/debian-keyring.gpg] http://deb.debian.org/debian buster main contrib non-free

    В отличие от /etc/apt/keyrings, в каталоге /etc/apt/trusted.gpg.d/ хранятся общие для всех репозиториев ключи. При обращении к репозиторию подходящий ключ в этом каталоге ищется автоматически. Однако использование общего хранилища ключей может представлять угрозу безопасности, так как все ключи применяются ко всем репозиториям.

    #Добавление ключа для docker sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc sudo tee /etc/apt/sources.list.d/docker.sources <
    Источники
    Последнее изменение: 20.06.2026 10:10


    Связанные темы
    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ