Как зашифровать/расшифровать файлы в gedit?

Вопрос или проблема

В предыдущей версии Ubuntu (например: Maverick, Natty) я использовал команду:

sudo apt-get install gedit-plugins seahorse

чтобы получить возможность шифровать/расшифровывать файлы в Gedit после включения плагина в настройках.

Но с тех пор, как вышла версия Oneiric, я не нашел способа достичь этого.

А теперь, когда я использую Precise (версии LTS!), я немного разочарован тем, что не могу делать такие вещи.

Мне пришлось немного повозиться с примером ryran, пока я не получил то, что нужно: шифровать с использованием моего GPG-ключа для нескольких человек. Вот код для шифрования:

#!/bin/sh
gpg -a -e -r [email protected] -r [email protected] --no-tty -

А для расшифровки:

#!/bin/sh
gpg -d --no-tty - 2> /dev/null

И установить ввод на “текущий документ”, а вывод на “заменить текущий документ” в обоих случаях.

Попробуйте Geany с плагином PGP. Geany — это легковесный редактор на базе gtk+, с отличной поддержкой.

sudo apt-get install geany geany-plugin-pg

Некоторое саморекламирование/запрос на отзыв:
http://pietrobattiston.it/gedit-crypto

(обратите внимание, что я разработал это также потому, что не смог использовать метод “Внешние инструменты” выше, не включив в открытом виде пароль для моего ключа — что я не хотел).

Еще один, который использует агента и поддерживает ввод электронной почты для асимметричного шифрования:

#!/bin/bash

mail=$(zenity --entry --text="Введите E-Mail")
gpg -a -e --no-tty -r "$mail" --use-agent -

А для расшифровки:

#!/bin/bash

gpg --no-tty --use-agent -

Ссылка Pipe’s (в комментариях) дает сводку.
Вам нужно добавить записи в “Управление внешними инструментами”, чтобы сделать это… пока. Вы также можете добавить сочетания клавиш. То, что ссылка не упоминает (насколько я видел), это то, что вам нужно установить gnupg-agent, чтобы иметь возможность вводить пароли.

Вот пример. Создайте новое действие и назовите его симметричное шифрование:

gpg --use-agent --symmetric 2>/dev/null

Настройте другие параметры по своему вкусу (вы можете сделать так, чтобы весь текст в окне автоматически выделялся и заменялся, вы можете сделать так, чтобы вывод появлялся в нижней панели и т.д.).

Примечание: Если вы установите gnupg2 вместо gnupg-agent и затем начнете свои команды с gpg2 вместо gpg, вы сможете воспользоваться более удобным [интегрированным] агентом gpg2.

Расширяя решение @Ignacio (которое работает), мне было неприятно, что если вы шифруете дважды (или расшифровываете), это ломает вещи… поэтому я запускаю это с дополнительной осторожностью по состоянию шифрования в документе:

Шифровать

#!/bin/bash
stdin=$(cat)

if [ ! "${stdin:0:27}" == "-----BEGIN PGP MESSAGE-----"  ]; then 
    echo "$stdin" | gpg -a -e -r [email protected] --no-tty -
else
    echo "$stdin"
fi

Расшифровать

#!/bin/bash
stdin=$(cat)

if [ "${stdin:0:27}" == "-----BEGIN PGP MESSAGE-----"  ]; then 
    echo "$stdin" | gpg -d --no-tty - 2> /dev/null
else
    echo "$stdin"
fi

Предполагая следующие настройки:

  • Сохранить – Ничего
  • Ввод – Текущий документ
  • Вывод – Заменить текущий документ
  • Применимость – Все документы / Все языки

Тогда вы можете установить сочетания клавиш, такие как Ctrl+Shift+D (расшифровка) и Ctrl+Shift+E (шифрование), и вы готовы к работе.

Шифрование(Расшифровка) с помощью gedit

  • 1.- установите плагин seahorse:

    sudo apt-get install gedit-plugins seahorse

  • 2.- откройте gedit

  • 3.- кликните по меню “редактор текста” (слева)

  • 4.- нажмите “управление внешними инструментами”:

скриншот: https://i.sstatic.net/dedUB.png

  • 5.- нажмите +, чтобы создать (добавить) новый “скрипт” gedit (так называемый “инструмент”)
  • 6.- напишите свой код (или скопируйте мой на основе “openssl”) для шифрования (или расшифровки)

скриншот: https://i.sstatic.net/Ytyaa.png

заметка: для каждого "инструмента" вам нужен дополнительный скрипт
  • 6.1.- мой код для шифрования:

    openssl enc -e -pbkdf2 -aes256 -base64
    -pass “pass:$(zenity –entry
    –title=”ENCRYPT” –text=”создайте пароль”)”;

  • 6.1.- мой код для расшифровки:

    openssl enc -d -pbkdf2 -aes256 -base64
    -pass “pass:$(zenity –entry
    –title=”DECRYPT” –text=”пароль”)”;

  • 7.- настройте вход/выход каждого из предыдущих “инструментов”, выбрав правильные параметры для “выбранного” или “документного” типа использования

скриншот: https://i.sstatic.net/73XqZ.png

Для выполнения скриптов (инструментов):

Откройте любой текстовый документ в gedit и попробуйте кликнуть по меню (3 горизонтальные полосы) (справа), затем нажмите опцию “инструменты/внешние инструменты”, затем нажмите ваш скрипт шифрования… (если вы выбрали “выбранный” в шаге 7, то вам нужно выделить какой-то фрагмент текста перед выполнением шифрования или расшифровки).

Источники:

gnome.org: плагины gedit внешние инструменты

dev.to: тестирование внешних инструментов

Ответ или решение

Для шифрования и дешифрования файлов в редакторе gedit вы можете воспользоваться внешними инструментами. Процесс немного изменился в последних версиях Ubuntu, таких как Oneiric и Precise. Я опишу, как можно настроить gedit для этих целей с помощью скриптов.

Шаги по шифрованию и дешифрованию файлов в gedit

  1. Установите необходимые пакеты. Вам понадобится установить плагины для gedit и менеджер ключей Seahorse. Откройте терминал и выполните команду:

    sudo apt-get install gedit-plugins seahorse
  2. Откройте gedit.

  3. Перейдите в меню управления внешними инструментами:

    • Выберите "Редактор текста" в меню.
    • Нажмите на "Управление внешними инструментами".
  4. Создайте новый инструмент:

    • Нажмите на кнопку "+" для добавления нового скрипта (инструмента).
    • Для шифрования используйте следующий код:
      openssl enc -e -pbkdf2 -aes256 -base64 -pass "pass:$(zenity --entry --title='ЗАШИФРОВАТЬ' --text='Создать пароль')"
    • Для дешифрования используйте:
      openssl enc -d -pbkdf2 -aes256 -base64 -pass "pass:$(zenity --entry --title='ДЕШИФРОВАТЬ' --text='Пароль')"
  5. Настройте параметры входа и выхода:

    • Для обоих инструментов выберите "Вход" как "Текущий документ" и "Выход" как "Заменить текущий документ". Это позволит автоматически обновлять файл с зашифрованным или расшифрованным содержимым.
  6. Настройте горячие клавиши (по желанию):

    • Вы можете настроить сочетания клавиш для быстрого доступа к шифрованию и дешифрованию.

Использование инструментов

  • Откройте любой текстовый документ в gedit.
  • Нажмите на меню (три горизонтальные полосы) в правом верхнем углу и выберите "Инструменты" -> "Внешние инструменты", затем выберите созданный скрипт для шифрования или дешифрования.

Дополнительные советы

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

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

#!/bin/bash
mail=$(zenity --entry --text="Введите E-Mail")
gpg -a -e --no-tty -r "$mail" --use-agent -

Дешифрование с помощью GPG:

#!/bin/bash
gpg --no-tty --use-agent -

Обязательно установите gnupg-agent, если он еще не установлен, так как это позволит вам вводить пароли.

Заключение

Теперь вы можете шифровать и дешифровать текстовые документы прямо из gedit, используя созданные вами внешние инструменты. Не забудьте протестировать созданные скрипты на небольших фрагментах текста, прежде чем использовать их на важной информации.

Оцените материал
Добавить комментарий

Капча загружается...