새 시스템(빈 비밀번호는 입력할 수 없음) 소프트웨어 버전:

새 시스템(빈 비밀번호는 입력할 수 없음) 소프트웨어 버전:

비밀번호를 사용하지 않은 이전 GPG 버전의 GPG 설정이 있습니다. 메시지가 표시되면 Enter만 입력합니다. 이것이 키가 암호화되지 않았음을 의미하는지, 아니면 빈 비밀번호로 암호화되었는지는 확실하지 않습니다.

어쨌든 최근에 나에게 보낸 내용을 해독하려고 하면 gpg가 내 개인 키에 액세스해야 하고 비밀번호를 묻는 메시지를 표시하지만 이제 더 이상 빈 비밀번호를 사용할 수 없습니다. gpg는 다음과 같이 실패합니다:

$ gpg -d foo.asc
(X dialog that prompts me for passphrase, I just press enter)
gpg: public key decryption failed: No passphrase given
gpg: decryption failed: No secret key

내 키를 다시 사용하고 싶습니다. 지금부터 비밀번호를 설정해도 상관없지만 어떻게 해야 할지 모르겠습니다.

$ gpg --passwd [email protected]
(X dialog that prompts me for current passphrase, I just press enter)
gpg: key xxxxxxxxxxxxxxxx/aaaaaaaaaaaaaaaa: error changing passphrase: No passphrase given
gpg: key xxxxxxxxxxxxxxxx/bbbbbbbbbbbbbbbb: error changing passphrase: No passphrase given
gpg: error changing the passphrase for '[email protected]': No passphrase given

저는 openSUSE 15.0에서 gpg(GnuPG) 2.2.5와 libgcrypt 1.8.2를 실행하고 있습니다.

답변1

저는 키가 있는 오래된 시스템을 사용하여 이 문제를 해결했습니다.

  • 빈 암호 입력이 작동했던 이전 시스템에 새 암호를 설정했습니다.
  • 이전 시스템 개인 키를 내보내고 새 시스템에 복사합니다.
  • 새 시스템의 gpg 상태를 정리합니다(.gnupg를 .gnupg.bak로 이동).
  • 비어 있지 않은 비밀번호 개인 키 가져오기

내가 실행한 명령은 다음과 같습니다.

# put a non-empty passphrase on current key
me@old$ gpg --passwd [email protected]
(leave empty on first prompt)
(put a new non-empty passphrase on 2nd)
(confirm new passphrase)

# now we export it

me@old$ gpg --list-secret-keys                               
/home/xxxxx/.gnupg/secring.gpg
-------------------------------
sec   4096R/AAAAAAAA 2015-01-01
uid                  Foo Bar <[email protected]>
uid                  Bar Foo <[email protected]>
ssb   4096R/BBBBBBBB 2015-01-01

# I've used the first key id (should be 8 hex digits)
me@old$ gpg --export-secret-keys AAAAAAAA > priv.key

# copy key over new system

# backup .gnupg dir just in case
me@new$ mv .gnupg .gnupg.back
# import new priv key
me@new$ gpg --import priv.key
(type new passphrase set previously)

# done!

완전성을 기하기 위해 두 시스템의 소프트웨어 버전은 다음과 같습니다. 누군가에게 도움이 될 수도 있습니다.

새 시스템(빈 비밀번호는 입력할 수 없음) 소프트웨어 버전:

  • gpg(GnuPG) 2.2.5
  • libgcrypt 1.8.2
  • pinentry-curses (pinentry) 1.1.0

이전 시스템(비어 있는 비밀번호를 입력할 수 있음) 소프트웨어 버전:

  • gpg(GnuPG) 2.0.24
  • libgcrypt 1.6.1
  • pinentry-curses (pinentry) 0.8.3

답변2

다음은 세 가지 가능한 해결 방법입니다. 귀하의 상황에 맞는 해결 방법이 있으면 알려 주시기 바랍니다.

참고: 저는 이들 중 어떤 것도 시도해 볼 기회가 없었지만(빈 비밀번호 gpg 키링이 없습니다) 매뉴얼 페이지/웹 페이지를 조사하고 검색했습니다!

비밀번호 -fd 사용

--passphrase-fd조합하여 사용하면 --batch빈 문자열을 파이프할 수 있습니다.

echo '' | gpg2 --batch --passphrase-fd 0 your other options

클레오파트라를 활용하세요

사용해 보세요클레오파트라, 그래픽 인증서 관리자.

  • 관련 키 쌍을 선택하세요.
  • 마우스 오른쪽 버튼으로 클릭Change passphrase
  • 팝업에서 필드를 비워 둡니다(예: 현재 비밀번호로 빈 비밀번호 사용).
  • 다음 팝업 창에 새 비밀번호를 입력하고 확인하세요.

핀트리 사용

또는 시도해 볼 수 있습니다. 이 솔루션이는 유틸리티를 활용합니다 pinentry.

관련 정보