Как использовать Emacs для распознавания и автоматического открытия зашифрованного файла GPG в бронированном формате ASCII?

gpg -ca passwords.txt создает зашифрованный файл ASCII passwords.txt.asc . Emacs открывает файл как обычный текстовый файл:

 -----BEGIN PGP MESSAGE----- Version: GnuPG v2.0.19 (GNU/Linux) jA0EAwMCkIp3+bQkLWJgyTQYLGVN8EUEG0BE42sEj/8PrnSzgviSiENxtK+/2n73 WXD7EtndVS/MX4lFJ96h8VozChUA =zSwh -----END PGP MESSAGE----- 

Как заставить Emacs автоматически расшифровывать и шифровать файл при открытии и сохранении?

5 Solutions collect form web for “Как использовать Emacs для распознавания и автоматического открытия зашифрованного файла GPG в бронированном формате ASCII?”

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

Во-первых, вы должны быть уверены, что установлен EasyPG Assistant.

Mx locate-library RET epa RET должен возвращать что-то вроде:

Библиотека – файл /usr/local/share/emacs/24.2.50/lisp/epa.elc

Если нет, то вы должны установить его. (или обновление до Emacs23 или Emacs24)

  1. http://emacswiki.org/emacs/EasyPG
  2. http://epg.sourceforge.jp/

Затем проверьте значение переменной auto-mode-alist с помощью Ch v auto-mode-alist RET и найдите epa .

Если вы не можете найти его, добавьте этот фрагмент в ваш .emacs .

 (add-to-list 'auto-mode-alist '("\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'" nil epa-file)) 

Я сделал следующее, чтобы позволить Emacs открывать файлы .asc таким же образом .gpg файлов

 (require 'epa-file) (epa-file-enable) (setq epa-file-name-regexp "\\.\\(gpg\\|asc\\)$") (epa-file-name-regexp-update) 

Ответ Daimrod (в настоящее время занимает первое место) не работает для меня, потому что EasyPG (epa) не является автоматическим режимом, поэтому изменение auto-mode-alist ошибочно, по крайней мере, с emacs 24.3.1.

Вместо этого вам нужно изменить значение epa-file-name-regexp, чтобы добавить шаблон, соответствующий файлам * .asc.

 (setq epa-file-name-regexp "\\.gpg\\(~\\|\\.~[0-9]+~\\)?\\'\\|\\.asc") 

Лично я считаю, что весь дополнительный синтаксис, необходимый для сопоставления файлов резервных копий emacs, не нужен практически для всех целей, а также для удобного понимания и обслуживания, поэтому я оставил это из шаблона «.asc». Добавьте его, если вы предпочитаете его дословно, как он появляется после шаблона «.gpg».

Обратите внимание, что если вы это сделаете после запуска emacs и включения epa, вам нужно запустить функцию epa-file-name-regexp-update, чтобы получить измененное значение. Это необязательно, если вы добавите этот код в файл запуска .emacs (и вам не нужно явно включать epa).

У меня была та же проблема, что и исходный плакат. Я хочу, чтобы EasyPG сохранял файлы с расширением .asc в ASCII-бронированном зашифрованном тексте, а не двоичном. В ответах есть хорошая информация, но ни один из них не был достаточно полным, чтобы решить проблему OP. Думаю, я решил это со следующей конфигурацией.

 (epa-file-enable) (setq epa-file-name-regexp "\\.\\(gpg\\|\\asc\\)\\(~\\|\\.~[0-9]+~\\)?\\'") (epa-file-name-regexp-update) ;; Minor mode for ASCII-armored gpg-encrypted files (define-minor-mode auto-encryption-armored-mode "Save files in encrypted, ASCII-armored format" ;; The initial value. nil ;; The indicator for the mode line. " Encrypted,Armored" ;; The minor mode bindings. nil (if (symbol-value auto-encryption-armored-mode) (set (make-local-variable 'epa-armor) t) (kill-local-variable 'epa-armor)) ) (add-to-list 'auto-mode-alist '("\\.asc$" . auto-encryption-armored-mode)) 

Во-первых, это добавляет имена резервных копий .asc и Emacs в расширения имен файлов, которые EasyPG будет сохранять как зашифрованные данные, по умолчанию двоичные.

Затем он определяет малый режим, который устанавливает epa-armor в качестве локальной переменной буфера. Вдохновленный чувствительным режимом: http://anirudhsasikumar.net/blog/2005.01.21.html

Наконец, он устанавливает, что второстепенный режим автоматически активируется при открытии файлов .asc. TODO: Также активируется при открытии резервных файлов Emacs.

Обратите внимание, что синтаксис «лишнего» epa-file-name-regexp regexp имеет решающее значение, если вы не хотите, чтобы скопированные копии ваших файлов .gpg и .asc плавали как резервные копии Emacs.

До сих пор работает нормально.

Этот вопрос довольно устаревший, но также нет простого решения, поставляемого с EasyPG и Emacs 24 на Debian 8.3. Надеюсь, это поможет.

Чт 3 сен 01:31:53 BST 2015

В дополнение к вышесказанному (для автоматического шифрования файлов .asc с доспехами ascii) epa-armor должен быть не ноль:

Добавить в init.el: (setq epa-armor t)

epa-armor – это переменная, определенная в `epa.el '. Ее значение равно t Если команды non-nil, epa создают ASCII-бронированный выход.

Вы должны привязать эту переменную к `let ', но не устанавливать ее глобально.

  • Определить тип файла с помощью файла magic-file и переименовать файл-суффикс соответственно
  • Какой инструмент для редактирования файла /usr/share/mime/packages/freedesktop.org.xml
  • Поиск типа файла, предполагающего неправильное расширение
  • Как установить значок для пользовательского mimetype в Linux Mint Mate?
  • Учитывая тип mime, получите соответствующее расширение файла
  • Есть ли графический инструмент для добавления новых схем URL, таких как XX: //?
  • Почему среды рабочего стола создают пользовательские замены xdg-open?
  • Как найти приложение для типа MIME в Linux?
  • имя двоичного имени и имени в графическом интерфейсе
  • Как игнорировать тип mime для расширения файла maff?
  • wget - Как загрузить рекурсивно и только определенные типы / расширения mime (т. е. только текст)
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.