Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

GnuPG – простой способ шифрования файлов в командной строке Linux

Оригинал: GnuPG – An Easy Way To Encrypt/Decrypt Files From Command Line in Linux
Автор: Magesh Maruthamuthu
Дата публикации: 15 марта 2017 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2017 г.

У всех нас есть секреты, которыми мы не хотим делиться с окружающими. Также у всех есть личные документы, которые мы не хотим никому показывать. Как их можно защитить при работе в многопользовательской системе, когда доступ к системе имеют несколько человек?
В Linux эту задачу можно решить с помощью нескольких программ. Хорошим решением является Cryptkeeper, о котором мы уже писали. Сегодня мы хотим рассказать вам о GnuPG - еще одном прекрасном приложении для шифрования/расшифровки файлов в командной строке Linux.

Что такое GnuPG

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

GnuPG имеет гибкую систему управления ключами, а также модули доступа ко всем видам директорий публичных ключей, поэтому она легко интегрируется с другими приложениями. Вторая версия GnuPG также обеспечивает поддержку S/MIME и Secure Shell (ssh).

Как установить GnuPG

В большинстве дистрибутивов Linux пакет GnuPG доступен в системных репозиториях, поэтому вы можете просто установить его с помощью штатного менеджера пакетов. Пакет GnuPG включает две команды, поэтому вы можете использовать gpg или gpg2.

[Установка GnuPG в Debian/Ubuntu/Mint]
$ sudo apt-get install gnupg

[Установка GnuPG в RHEL/CentOS]
$ sudo yum install gnupg

[Установка GnuPG в Fedora]
$ sudo dnf install gnupg

[Установка GnuPG в openSUSE]
$ sudo zypper install gpg2

[Установка GnuPG в Mageia]
$ sudo urpmi gnupg

[Установка GnuPG в системах на базе Arch Linux]
$ sudo pacman -S gnupg

Как зашифровать файл

Для шифрования файла используется ключ -c вместе с именем файла. с означает, что используется симметричная криптосистема. При первом запуске в вашей домашней директории будут созданы необходимые папки:

# gpg -c magi.txt
gpg: directory '/home/magi/.gnupg' created
gpg: new configuration file '/home/magi/.gnupg/dirmngr.conf' created
gpg: new configuration file '/home/magi/.gnupg/gpg.conf' created
gpg: keybox '/home/magi/.gnupg/pubring.kbx' created
Enter passphrase:[YOUR PASSWORD]
Repeat passphrase:[YOUR PASSWORD]

Введите дважды свой пароль, затем кликните ОК для шифрования файла. Зашифрованный файл получит расширение .gpg.

# ls -lh
-rw-rw-r-- 1 magi magi  28 Jan 21 07:57 magi.txt
-rw-rw-r-- 1 magi magi 105 Jan 21 07:59 magi.txt.gpg

Обратите внимание, что если вы забудете/потеряете пароль, то не сможете восстановить документ или просмотреть его содержимое, так как используется очень сильное шифрование.

Как дешифровать файл

Для этого используется команда gpg с ключами -d или --decrypt.

# gpg magi.txt.gpg
или
# gpg -d magi.txt.gpg
или
# gpg --decrypt magi.txt.gpg

gpg: AES encrypted data
gpg: encrypted with 1 passphrase
File 'magi.txt' exists. Overwrite? (y/n) y

Будет выведено окно для ввода пароля. Введите пароль, затем нажмите ok для дешифровки файла.
Нажмите n для сохранения файла под другим именем.

gpg: AES encrypted data
gpg: encrypted with 1 passphrase
File 'magi.txt' exists. Overwrite? (y/n) n
Enter new filename: magi1.txt

Дешифрование и запись вывода в новый файл

Если вы хотите после дешифрования записать вывод в новый файл, просто добавьте ключ -o и новое имя файла.

# gpg -o 2g.txt magi.txt.gpg
gpg: AES encrypted data
gpg: encrypted with 1 passphrase

Вы можете узнать больше о возможностях GnuPG, прочитав man-страницу утилиты.

# gpg --help
или
# man gpg