GnuPG의 이상한 버그: 터미널이 너무 작을 때 "키 없음"이라고 주장함

GnuPG의 이상한 버그: 터미널이 너무 작을 때 "키 없음"이라고 주장함

내 콘텐츠는 다음과 같습니다 .gnupg/gpg-agent.conf.

pinentry-program /usr/bin/pinentry-curses

pass예를 들어 아주 작은 터미널 창을 통해 저장소에서 비밀번호를 검색하려고 하면 pass -c path/to/password명령 오류가 다음과 같습니다.

gpg: decryption failed: No secret key

그래서 이것은 GnuPG 버그입니다. ncurses에는 pinentry 대화 상자를 그릴 공간이 충분하지 않기 때문이라고 생각합니다.

누군가 이것을 재현할 수 있습니까? 그렇다면 이 버그를 어디에 신고할 수 있나요?

여기에 이미지 설명을 입력하세요.

답변1

(의심되는) 버그를 보고할 때마다 관찰한 동작과 예상한 내용을 설명해야 합니다. 따라서 이 경우 GnuPG를 사용하여 버그 보고서를 열 때 어떤 일이 일어나야 한다고 생각하는지 명시해야 합니다. 여기에 추가하는 경우 댓글에만 추가하는 것이 아니라 질문을 편집해야 합니다. 하단의 제안 사항도 참조하세요.

네, 창이 너무 작기 때문에 이런 일이 발생합니다. 또한 GnuPG에서 파생되지도 않습니다. GnuPG는 pinentry-program구성에서 지정한 내용만 호출합니다.

무슨 일이 일어나고 있는지에 대한 자세한 내용을 보려면 수동으로 호출해 볼 수 있습니다.

$ stty cols 20 rows 10
$ pinentry-curses 
OK Pleased to meet you
GETPIN
S ERROR curses.dialog_create 83886381 
ERR 83886381 Screen or window too small <Pinentry>

여기서는 먼저 tty 크기를 더 작게 만든 다음 을 호출했습니다 pinentry-curses. 명령을 기다렸다가 GETPINPIN을 얻기 위해 명령을 입력했습니다. 화면이 너무 작아서 대화 상자를 표시할 수 없다고 불평합니다. GnuPG는 PIN을 얻을 수 없다고 보고합니다.

귀하가 작성한 티켓을 보았는데, 귀하의 제안은 어렵거나 불가능한 것 사이에 있습니다. gpg단말기 크기에 신경쓰지 않아야 하고 따라서 단말기가 너무 작다고 주장해서는 안 되기 때문입니다.

대신 다음 텍스트를 사용하는 것이 좋습니다(여기서 계정을 만들고 싶지 않습니다).

gpgpinentry-program복호화 키가 필요한 경우 호출됩니다. pgp일반 메시지를 표시하는 대신 다음 과 같은
decryption failed: No secret key
전달된 메시지를 표시하는 것이 사용자에게 더 좋습니다 .pinentry-program
Can't decrypt key, pinentry-program failed with (text from ERR response)

또한 gpg 팀에서 유지 관리하는 경우 작은 창을 감지하고 pinentry-curses설정되지 않은 경우와 동일하게 동작하여 이 오류를 피할 수 있습니다.$TERM

관련 정보