Site icon ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 9 февраля, 2026

Как использовать GPG для шифрования и дешифрования файлов в Linux

Как использовать GPG для шифрования и дешифрования файлов в Linux

В этой статье мы расскажем, как шифровать файлы с помощью GPG в Linux, создавать пары ключей, безопасно обмениваться зашифрованными файлами и расшифровывать их.

В вычислительной технике шифрование — популярный и наиболее часто рекомендуемый метод сокрытия информации в секретном формате. GnuPG — один из полезных инструментов для шифрования информации (файлов) в системах Linux.

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

Доступно две версии GPG:

  1. gpg — автономная версия, которая больше подходит для серверов и встроенных платформ.
  2. gpg2 — версия для настольных компьютеров, для работы которой требуется установка нескольких других модулей.

 

В некоторых популярных дистрибутивах Linux, таких как Debian и Ubuntu, пакет gnupg2 является фиктивным переходным пакетом, который содержит символические ссылки с gpg2 на gpg. То есть, устанавливая gnupg2, вы фактически получаете современную унифицированную версию GPG.

 

Понимание сценария

Это демонстрирует обмен информацией между двумя сторонами:

 

Файл, которым обмениваются две стороны, называется secret.txt. В нем содержится очень важный пароль, которым тестовый администратор хочет поделиться с пользователем Alex.

Вы можете просмотреть содержимое файла secret.txt, содержащего пароль и другие данные для удаленного доступа, с помощью следующей команды cat, как показано на рисунке. Файл находится на сервере Test Admin:

cat secret.txt

 

Установите GnuPG (GNU Privacy Guard) в Linux

Чтобы установить пакет GnuPG, выполните соответствующую команду для вашего дистрибутива Linux, как показано ниже. Обратите внимание, что пакет gnupg должен быть установлен в обеих системах, обменивающихся данными.

Однако в большинстве современных дистрибутивов Linux GPG предустановлен, поэтому вы можете проверить, установлен ли он, выполнив команду gpg --version перед установкой.

sudo apt install gnupg [в Debian, Ubuntu и Mint]
sudo yum install gnupg [в RHEL/CentOS/Fedora и Rocky/AlmaLinux]
sudo emerge -a app-crypt/gnupg [в Gentoo Linux]
sudo apk add gnupg [в Alpine Linux]
sudo pacman -S gnupg [в Arch Linux]
sudo zypper install gnupg [в OpenSUSE] 

 

Создание новых пар ключей GPG в Linux

Чтобы создать новые пары ключей (открытый и закрытый), выполните команду gpg с флагом --full-generate-key в обеих системах и следуйте инструкциям, чтобы указать тип ключа, его размер, срок действия ключа, идентификатор пользователя для ключа и надежную парольную фразу для ключа, как показано на скриншоте ниже.

gpg --full-generate-key

 

В процессе создания ключа вам будет предложено:

 

Список пар ключей GPG в Linux

Чтобы вывести список только что созданного открытого ключа GPG вместе с другими существующими ключами, выполните команду gpg с флагом --list-public-keys. Для вывода длинного списка добавьте флаг --keyid-format=long.

gpg --list-public-keys

 

или

gpg --list-public-keys --keyid-format=long

 

Чтобы вывести список только что созданного секретного ключа GPG вместе с другими существующими ключами, выполните команду gpg с флагом --list-secret-keys. Для вывода длинного списка добавьте флаг --keyid-format=long.

gpg --list-secret-keys

 

или

gpg --list-secret-keys --keyid-format=long

 

Экспорт ключей с помощью GPG в Linux

После того как обе стороны сгенерируют пары ключей GPG, они могут экспортировать свои открытые ключи в файл и отправить их друг другу по электронной почте или другим способом.

--------- На сервере Alex --------- 
gpg --list-public-keys
gpg --export -o aaronsec.key 15B4814FB0F21208FB5076E7A937C15009BAC996

--------- На тестовом сервере администратора ---------
gpg --list-public-keys
gpg --export -o tadminsec.key BC39679E5FF48D4A6AEF6F3437211F0B4D6D8A61

 

Идентификатор ключа (длинная буквенно-цифровая строка) можно найти в выводе команды --list-public-keys . Вы можете использовать либо полный отпечаток, либо последние 8–16 символов идентификатора ключа.

 

Импортируйте ключи с помощью GPG в Linux

Затем обменяйтесь открытыми ключами по электронной почте или с помощью других безопасных способов, например с помощью команды scp, как показано ниже:

scp aaronsec.key root@192.168.0.189:/root/
scp root@192.168.0.189:/root/tadminsec.key ./

 

Затем импортируйте открытый ключ с другого устройства в локальную систему, добавив флаг --import как показано на рисунке.

gpg --import aaronsec.key
gpg --import tadminsec.key

 

Чтобы проверить, есть ли импортированный открытый ключ в локальной связке ключей системы, выведите список доступных открытых ключей, как показано на рисунке.

gpg --list-public-keys

 

Шифрование файлов с помощью GPG в Linux

Теперь давайте посмотрим, как зашифровать секретный файл с помощью ключей gpg. В этом разделе мы будем выполнять команды на сервере тестируемого администратора.

Чтобы зашифровать текстовый файл с помощью только что созданной пары ключей GPG, выполните следующую команду. Флаг -e или --encrypt включает шифрование, флаг -r или --recipient используется для указания идентификатора получателя, а secret.txt — это текстовый файл, который нужно зашифровать.

Следующая команда шифрует файл secret.txt с помощью открытого ключа получателя alex@gmail.com:

gpg -e -r alex@gmail.com secret.txt

 

или

gpg --encrypt --recipient alex@gmail.com secret.txt

 

Если предыдущая команда выполнится успешно, в текущем каталоге будет создан новый файл (исходное имя файла с расширением .gpg):

ls secret.txt.gpg

 

Чтобы сохранить зашифрованную информацию в другом файле, используйте параметр -o или --output с указанием имени файла. В этом примере предпочтительным является имя node_configs:

gpg -e -r alex@gmail.com -o node_configs secret.txt

 

или

gpg --encrypt --recipient alex@gmail.com --output node_configs secret.txt

 

Теперь отправьте зашифрованный файл своему партнеру по электронной почте или другим безопасным способом.

 

Профессиональный совет: вы можете зашифровать файлы для нескольких получателей, добавив несколько -r флагов с разными адресами электронной почты. Таким образом, несколько человек смогут расшифровать один и тот же файл с помощью своих закрытых ключей.

 

Расшифровка файлов с помощью GPG в Linux

Чтобы расшифровать файл, зашифрованный с помощью gpg, добавьте флаг -d или --decrypt и укажите зашифрованное имя файла. По умолчанию расшифрованная информация будет выводиться в стандартный поток вывода. Вы можете сохранить ее в файл, используя флаг -o, как показано на рисунке.

gpg -d -o secrets.txt secrets.txt.gpg
ls secrets.txt

 

При выполнении команды расшифровки GPG предложит вам ввести парольную фразу, которую вы указали при создании ключа. Убедитесь, что вы ввели ее правильно, чтобы успешно расшифровать файл.

 

Дополнительные рекомендации по обеспечению безопасности с помощью GPG

Несмотря на то, что GPG невероятно безопасен, соблюдение этих рекомендаций повысит эффективность вашего процесса шифрования:

 

Дополнительную информацию можно найти на странице руководства gpg/gpg2, как показано на рисунке.

man gpg

 

или

man gpg2

 

Заключение

На этом мы заканчиваем наше руководство. GPG — это широко используемый инструмент для шифрования и дешифрования информации или файлов в Linux. Он обеспечивает шифрование военного уровня, которому доверяют специалисты по безопасности по всему миру.

 

Если у вас есть замечания по поводу этой статьи, воспользуйтесь формой обратной связи ниже.

Exit mobile version