Emacs를 사용하여 ASCII armor 형식의 GPG 암호화 파일을 식별하고 자동으로 여는 방법은 무엇입니까?

Emacs를 사용하여 ASCII armor 형식의 GPG 암호화 파일을 식별하고 자동으로 여는 방법은 무엇입니까?

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가 파일을 열고 저장할 때 자동으로 파일의 암호를 해독하고 암호화하도록 하려면 어떻게 해야 합니까?

답변1

기본 구성을 사용하면 모든 것이 제대로 작동하지만 구성을 확인할 수 있습니다.

먼저 EasyPG Assistant가 설치되어 있는지 확인해야 합니다.

M-xlocate-libraryRETepaRET다음과 같은 것을 반환해야 합니다:

라이브러리는 /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하고 C-hvauto-mode-alistRET검색하십시오 epa.

찾을 수 없으면 이 스니펫을 에 추가하세요 .emacs.

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

답변2

원본 포스터와 동일한 문제가 있습니다. EasyPG가 바이너리 대신 ASCII 장갑 암호문으로 .asc 확장자를 가진 파일을 저장하길 원합니다. 답변에 좋은 정보가 있지만 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))

먼저, EasyPG가 암호화된 데이터(기본적으로 바이너리)로 저장하는 파일 확장자에 .asc 및 Emacs 백업 이름을 추가합니다.

그런 다음 epa-armor를 버퍼 로컬 변수로 설정하여 마이너 모드를 정의합니다. 민감한 패턴에서 영감을 얻었습니다:http://anirudhsasikumar.net/blog/2005.01.21.html

마지막으로 .asc 파일을 열 때 자동으로 활성화되도록 보조 모드를 설정합니다. TODO: Emacs 백업 파일을 열 때도 활성화됩니다.

Emacs 백업으로 떠다니는 .gpg 및 .asc 파일의 일반 텍스트 복사본을 원하지 않는 경우 "추가" epa-file-name-regexp 정규식 구문이 중요합니다.

지금까지 잘 작동하는 것 같습니다.

이 문제는 꽤 오래되었지만 Debian 8.3의 EasyPG 및 Emacs 24에 대한 쉬운 해결책은 없습니다. 도움이 되길 바랍니다.

답변3

.ascEmacs가 다음과 같은 방식으로 파일을 열도록 하기 위해 다음을 수행했습니다 ..gpg

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

답변4

2015년 9월 3일 목요일 01:31:53 BST

위의 내용(ascii armor를 사용하여 .asc 파일을 자동으로 암호화) 외에도 epa-armor0이 아니어야 합니다.

init.el에 추가: (setq epa-armor t)

epa-armor는 값이 t인 'epa.el'에 정의된 변수입니다. nil이 아닌 경우 epa 명령은 ASCII armor 출력을 생성합니다.

이 변수를 바인딩하려면 "let"을 사용해야 하지만 전역적으로 설정해서는 안 됩니다.

관련 정보