비밀번호를 사용하지 않은 이전 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
.