Вопрос или проблема
В предыдущей версии 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, то вам нужно выделить какой-то фрагмент текста перед выполнением шифрования или расшифровки).
Источники:
Ответ или решение
Для шифрования и дешифрования файлов в редакторе gedit вы можете воспользоваться внешними инструментами. Процесс немного изменился в последних версиях Ubuntu, таких как Oneiric и Precise. Я опишу, как можно настроить gedit для этих целей с помощью скриптов.
Шаги по шифрованию и дешифрованию файлов в gedit
-
Установите необходимые пакеты. Вам понадобится установить плагины для gedit и менеджер ключей Seahorse. Откройте терминал и выполните команду:
sudo apt-get install gedit-plugins seahorse
-
Откройте gedit.
-
Перейдите в меню управления внешними инструментами:
- Выберите "Редактор текста" в меню.
- Нажмите на "Управление внешними инструментами".
-
Создайте новый инструмент:
- Нажмите на кнопку "+" для добавления нового скрипта (инструмента).
- Для шифрования используйте следующий код:
openssl enc -e -pbkdf2 -aes256 -base64 -pass "pass:$(zenity --entry --title='ЗАШИФРОВАТЬ' --text='Создать пароль')"
- Для дешифрования используйте:
openssl enc -d -pbkdf2 -aes256 -base64 -pass "pass:$(zenity --entry --title='ДЕШИФРОВАТЬ' --text='Пароль')"
-
Настройте параметры входа и выхода:
- Для обоих инструментов выберите "Вход" как "Текущий документ" и "Выход" как "Заменить текущий документ". Это позволит автоматически обновлять файл с зашифрованным или расшифрованным содержимым.
-
Настройте горячие клавиши (по желанию):
- Вы можете настроить сочетания клавиш для быстрого доступа к шифрованию и дешифрованию.
Использование инструментов
- Откройте любой текстовый документ в 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, используя созданные вами внешние инструменты. Не забудьте протестировать созданные скрипты на небольших фрагментах текста, прежде чем использовать их на важной информации.