emacs는 터미널에서 gpg-agent를 사용할 수 있습니까?

emacs는 터미널에서 gpg-agent를 사용할 수 있습니까?

pinentry-cursesEmacs를 사용하는 데 문제가 있다는 것을 알고 있습니다 (몇 가지 의견 참조).http://emacswiki.org/emacs/EasyPG), 따라서 터미널에서 emacs를 사용하는 것은 gpg-agent와 호환되지 않습니다.

이 경우에는 SSH를 통해 원격 시스템에 연결되어 있기 때문에 그래픽 pinentry 도구를 사용할 수 없습니다.

그러나 사전에 gpg-agent에 비밀번호를 제공한 다음 emacs가 이를 사용하도록 할 수 있지만 에이전트가 아직 이 정보를 갖고 있지 않은 경우 비밀번호를 묻는 메시지를 표시하지 않을 수 있습니까?

notmuch.el및 와 함께 사용할 수 있는 설정은 무엇입니까 EasyPG?

또는 동일한 효과를 달성하지만 보안 문제가 있을 수 있는 암호 문구를 캐싱하는 대체 방법이 있습니까(이것이 애초에 gpg-agent가 존재하는 이유입니다)?

답변1

이것! ->https://github.com/ecraven/pinentry-emacs

약간 비틀어야 하는데 이 방법을 사용하는 것이 저에게 효과적이었습니다. 스크립트를 디렉터리에 넣고 PATH다음 항목을 추가합니다 ~/.gnupg/gpg-agent.conf.

pinentry-program <path-to-pinentry-emacs>/pinentry-emacs

그런 다음 에이전트를 다시 로드합니다.

$ echo RELOADAGENT | gpg-connect-agent

꿈만 같아요 :)

답변2

상당히 새로운 pinentry/gpg2(각각 0.9.7 및 2.1.11의 Arch Linux에서 테스트됨)가 있는 경우 또 다른 옵션은 다음을 사용하는 것입니다.http://elpa.gnu.org/packages/pinentry.html.

pinentry설치 M-x list-packages후 장소

allow-emacs-pinentry

당신 .gnupg/gpg-agent.conf과 넣어

(setenv "INSIDE_EMACS" (format "%s,comint" emacs-version))
(pinentry-start)

당신의 .emacs.d/init.el. INSIDE_EMACS는 런타임에 설정되지만 M-x shell단순히 파일을 열 때 설정되지 않기 때문에 setenv를 거기에 넣어야 했습니다 .gpg.

gpg-agent는 이제 터미널과 Emacs read-passwd(프롬프트와 Emacs에서 문자를 숨김 view-lossage)에서 일반 저주 버전을 사용합니다.


편집: Emacs 지원을 제거하기 위한 데비안 패키지용 패치가 있는 것 같으므로 현재 이 솔루션은 pinentry 자체 컴파일을 준비하는 다른 배포판/사람들에게만 적합합니다.

답변3

pinentry-mode loopback~/.gnupg/gpg.conf2021년에는 gpg-agent 설정 및 사용 allow-loopback-entry후 설정을 사용하실 수 있습니다.~/.gnupg/gpg-agent.conf

관련 정보