Linux

Как зашифровать файлы с помощью GPG в Linux – пошаговое руководство

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

Обновлено 30 июля 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04 LTSDebian 12Fedora 38

Введение / Зачем это нужно

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

Требования / Подготовка

  • Установленный GPG (gnupg или gnupg2).
  • Права суперпользователя (sudo) для установки пакетов.
  • Свободное место для зашифрованных файлов.
  • Необязательно: существующий ключ GPG (если вы хотите использовать его для шифрования).

Шаг 1: Установка GPG

Откройте терминал и выполните команду для вашего дистрибутива:

# Для Debian/Ubuntu
sudo apt update && sudo apt install gnupg

# Для Fedora/CentOS
sudo dnf install gnupg2

После установки проверьте версию:

gpg --version

Шаг 2: Генерация ключа (если у вас его ещё нет)

Если у вас ещё нет ключа GPG, создайте новый. Команда запустит интерактивный мастер:

gpg --full-generate-key

Следуйте подсказкам:

  1. Выберите тип ключа: RSA and RSA (default) (нажмите Enter).
  2. Выберите длину ключа: 4096 (рекомендуется).
  3. Укажите срок действия ключа: 0 (бессрочный) или конкретную дату.
  4. Введите основное имя: ваше имя и электронная почта.
  5. Задайте надёжную парольную фразу — запомните её или сохраните в менеджере паролей.

Шаг 3: Шифрование отдельного файла

Симметричное шифрование с использованием AES‑256 — быстрый способ защитить один файл:

gpg --symmetric --cipher-algo AES256 /path/to/file.txt

После выполнения команды в той же директории появляется новый файл:

/path/to/file.txt.gpg

Только тот, у кого есть парольная фраза (или импортированный секретный ключ), может его расшифровать.

Шаг 4: Шифрование всей папки

Если вам нужно защитить несколько файлов, используйте простой скрипт:

#!/bin/bash
for f in *; do
  if [ -f "$f" ]; then
    gpg --symmetric --cipher-algo AES256 "$f"
  fi
done

Сохраните его как encrypt_dir.sh, сделайте исполняемым (chmod +x encrypt_dir.sh) и запустите в целевой папке:

./encrypt_dir.sh

Каждый исходный файл получит расширение .gpg.

Проверка результата

После шифрования убедитесь, что файл действительно защищён:

  1. Без ключа – расшифровка должна завершиться с ошибкой:
    gpg --decrypt /path/to/file.txt.gpg
    

    Если вы не ввели правильную парольную фразу, вы увидите сообщение gpg: decryption failed: no secret key.
  2. С ключом – импортируйте секретный ключ (если он не используется автоматически) и расшифруйте:
    gpg --decrypt /path/to/file.txt.gpg > /path/to/decrypted.txt
    

    Проверьте содержимое файла decrypted.txt. Оно должно совпадать с исходным.
  3. Размер – зашифрованный файл обычно больше исходного на несколько килобайт; это нормально.

Возможные проблемы

СимптомВероятная причинаРешение
gpg: command not foundGPG не установлен или отсутствует в PATHВыполните команду установки для вашего дистрибутива (см. Шаг 1).
gpg: key generation failed: No entropyНедостаток случайных данных (часто на виртуальных машинах)Используйте rng-tools (sudo apt install rng-tools или sudo dnf install rng-tools), затем запустите rngd -r /dev/urandom.
gpg: symmetric encryption failed: No such file or directoryНеправильный путь к файлуУбедитесь, что путь /path/to/file.txt существует; используйте ls -l для проверки.
Забыт парольная фразаНе сохранена в менеджере паролейСоздайте новый ключ, импортируйте старый закрытый ключ (gpg --import) и установите новую парольную фразу.
Зашифрованный файл слишком большойGPG может разделить большие файлы на несколько частейИспользуйте gpg --symmetric --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 для уменьшения размера или шифруйте архив (tar -cvf archive.tar.gz file* перед шифрованием).
gpg: decrypt: plaintext file existsФайл с таким именем уже существуетУкажите другой путь для выходного файла (> /new/path/decrypted.txt) или удалите старый файл.

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

Часто задаваемые вопросы

Зачем шифровать файлы с помощью GPG?
Как сгенерировать ключ GPG для шифрования?
Что делать, если я забыл пароль от ключа?
Как проверить, что файл действительно зашифрован?

Полезное

Установка GPG
Генерация ключа (если у вас его ещё нет)
Шифрование отдельного файла
Шифрование всей папки

Эта статья помогла вам решить проблему?