나는 때때로 X 디스플레이 없이 또는 SSH를 통해 gpg-agent를 사용하므로 내 구성 파일에는 다음이 포함됩니다.
pinentry-program /usr/bin/pinentry-curses
이런 식으로 gpg 비밀번호가 저주로 요청됩니다.
즉, 일부 그래픽 스크립트에서는 GTK pinentry를 대신 사용하고 싶습니다. gpg를 호출하고 일시적으로 다른 pinentry를 사용할 수 있습니까?
답변1
PINENTRY_USER_DATA
환경 변수를 사용하여 gpg
pinentry 명령에 전달할 정보를 제공할 수 있습니다. 그런 다음 다음 pinentry-program
과 같은 사용자 정의 래퍼를 설정해야 합니다 .이것Curses 또는 GTK pinentry는 이 변수를 기반으로 실행됩니다.
이는 GPG 1.x에 대한 문서에 명시된 내용과 달리 GPG 2.x에서만 작동하는 것으로 보입니다.
그래서그 스크립트, 당신은 사용 gpg2
하고 pinentry-curses
사용 PINENTRY_USER_DATA="gtk" gpg2
하는 데 사용합니다 pinentry-gtk-2
.
답변2
살펴보니 man pinentry-gnome3
다음과 같았습니다.
pinentry-gnome3 implements a PIN entry dialog based on GNOME 3, which
aims to follow the GNOME Human Interface Guidelines as closely as pos‐
sible. If the X Window System is not active then an alternative text-
mode dialog will be used. There are other flavors that implement PIN
entry dialogs using other tool kits.
불행하게도 이 텍스트 모드 대체는 나에게 적합하지 않습니다. 다른 사람들도 그런 것 같던데동일한 질문. 하지만,이 댓글다른 GUI 비밀번호 입력 프로그램을 사용해 보라는 메시지가 표시되었습니다: pinentry-gtk2
. 다음과 같이 전환할 수 있습니다.
> sudo update-alternatives --config pinentry
There are 3 choices for the alternative pinentry (providing /usr/bin/pinentry).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/pinentry-gnome3 90 auto mode
1 /usr/bin/pinentry-curses 50 manual mode
2 /usr/bin/pinentry-gnome3 90 manual mode
3 /usr/bin/pinentry-gtk-2 85 manual mode
Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/pinentry-gtk-2 to provide /usr/bin/pinentry (pinentry) in manual mode
바꾸고 나니 나에게 아주 잘 맞았다! 데스크탑의 터미널에서는 GUI 비밀번호 입력을 사용하지만 내 컴퓨터에 ssh를 사용하면 텍스트 모드 비밀번호 입력을 사용합니다.