В некоторых случаях хочется быть уверенным в том, что важные данные никто больше не прочитает, даже самые подготовленные специалисты или спецслужбы. Для этого достаточно зашифровать файлы с помощью утилиты GnuPG в Linux. Для более высокой надежности лучше всего использовать AES-256.
Если вы хотите более подробно ознакомиться с утилитой GnuPG, то здесь отличный мануал от разработчиков. А в этой статье мы рассмотрим простое симметричное шифрование файлов. В этом случае для того, чтобы зашифровать или расшифровать файл нужно вводить пароль.
Проверим установлена ли GnuGP
Почти во всех популярных дистрибутивах Linux утилита GnuPG установлена по-умолчанию, поэтому достаточно открыть терминал и ввести нужные команды. Для того, чтобы проверить установлена ли утилита на ваш дистрибутив, откройте терминал и введите:
gpg --version
Если утилита установлена, то вы получите вот такой вывод, в котором будет указана версия и поддерживаемые алгоритмы шифрования.

Шифрование
Зашифруем файл
Подготовим среду для того, чтобы было безопасно «поковырять» утилиту и не задеть важные файлы:
# Создадим папку test-gpg
mkdir test-gpg
# Перейдем в нее
cd test-gpg
# Создадим внутри файл test.txt с текстом "my secret"
echo "my secret" > file.txt
# Проверим наличие файла в папке
ls
# Проверим содержимое файла
cat file.txt
Если вы все сделали правильно, то у вас все должно быть примерно так:

А теперь зашифруем наш тестовый файл алгоритмом по-умолчанию:
gpg -c file.txt
После ввода команды, нужно задать пароль два раза в поле Passphrase. В Debian 9 это выглядит так, в других дистрибутивах это поле ввода может выглядеть иначе.

После ввода пароля рядом с тестовым файлом file.txt
должна появиться его зашифрованная версия file.txt.gpg

Чтобы увидеть какой алгоритм используется по умолчанию, то нужно добавить опцию -vv
перед файлом.
gpg -c -vv file.txt
И после двукратного ввода пароля мы увидим алгоритм по дефолту. В данном случае об этом говорит строка: gpg: using cipher AES256

Если требуется указать алгоритм шифрования AES256 явно, нужно добавить опцию --cipher-algo AES256
перед файлом:
gpg -c --cipher-algo AES256 file.txt
Как видите, зашифровать файлы в Linux не так уж и сложно. Вероятно это даже проще, чем в Windows.
Зашифруем папку
Что делать, если нужно зашифровать папку в Linux? Тут тоже есть довольно простое решение: перед шифрованием поместить папку в архив. Для этого мы будем использовать архиватор tar, который так же есть по-умолчанию почти во всех дистрибутивах.
Подготовим тестовую папку для шифрования:
# Создадим внутри папки gpg-test еще одну тестовую папку
mkdir folder
# Переместим туда файл file.txt
mv file.txt folder/
# Проверим содержимое папки folder
ls folder/
Если все идет по плану, то у вас должно быть вот так:

Теперь поместим папку в архив с помощью утилиты tar.
tar -cvf folder.tar folder/
Проверим наличие архива folder.tar
с помощью команды ls

И так, архив с секретной папкой внутри создан. Теперь осталось зашифровать его как обычный файл.
gpg -c folder.tar
И в результате должна появиться зашифрованная версия файла folder.tar
, под именем folder.tar.gpg
:

Теперь можно смело закидывать шифрованные файлы с расширением .gpg на облако, не боясь, что кто-то кроме вас прочитает эти файлы. Но перед этим было бы неплохо убедиться, что вы можете их расшифровать в будущем.
Дешифрование
Расшифруем файл
Есть два способа, по которым можно расшифровать наш gpg файл. Один максимально короткий, при котором мы надеемся, что GnuPG «поймет» что нам от нее нужно:
gpg file.txt.gpg
В этом случае скорее всего вы увидите похожий результат после ввода пароля:

Это значит, что файл расшифрован и сохранен под именем file.txt
. Ниже мы проверили наличие файла командой ls
и его содержимое командой cat
.
Если укороченной версией расшифровать не получилось, тогда следует прописать все параметры явно:
gpg -o file.txt -d file.txt.gpg
В данном случае опция -o
указывает как должен называться расшифрованный файл, а опция -d
указывает какой файл надо расшифровать.
Расшифруем папку
И так, файл расшифрован, но что делать с ранее зашифрованной папкой в архиве? Тут тоже ничего сложного, сначала расшифруем архив как обычный файл, а потом достаем папку из архива. Перед этим, для чистоты эксперимента лучше удалить ранее созданную оригинальную папку folder
и архив folder.tar
, чтобы убедиться в том, что мы точно расшифровали и достали из архива то, что нужно.
# Удалим тестовую папку
rm -r folder/
# Удалим архив с тестовой папкой
rm folder.tar
# Проверим, что осталась только зашифрованная версия folder
ls

Теперь расшифруем архивный файл folder.tar.gpg
gpg folder.tar.gpg
Рядом с folder.tar.gpg
должна появиться его расшифрованная версия folder.tar

Распакуем расшифрованный архив folder.tar:
tar -xvf folder.tar
После этого среди всех файлов должна появиться папка folder, которую мы зашифровали в конце прошлого раздела.

Итог
Шифровать файлы в Linux очень просто, при этом не требуется установки каких-то дополнительных программ. Достаточно воспользоваться утилитами по дефолту и они будут не менее надежными. Очевидно, что нужно использовать сложный пароль, который будет содержать цифры, большие и маленькие символы, а также специальные символы (#, %, & и тд).
Здесь вы можете почитать об остальных опциях GnuPG.
Здесь более подробный мануал от разработчиков.