gpg2 : 비밀 키 없음


21

나는 enigmail을 1 년 이상 문제없이 사용 해 왔으며 오늘날에는 작동하지 않습니다.

나는 다음과 같은 흥미로운 사실을 발견했다.

gpg --decrypt something.gpg # this works
gpg2 --decrypt something.gpg # this fails

그래서 내 컴퓨터의 gpg 버전 2에서 무언가가 깨졌습니다.

이것은 나를 보았습니다.

gpg --list-secret-keys # reads from ~/.gnupg/secring.gpg
gpg2 --list-secret-keys # reads from ~/.gnupg/pubring.gpg (pubring?!) 

이것은 문제의 근원 인 것 같습니다 ... 물론 gpg2잘못된 파일을 찾고 있기 때문에 비밀 키를 찾을 수 없습니다.

일이 잘 gpg2되면 어떻게 실패 할 수 gpg있습니까? 비밀 키를 읽을 위치를 지정하는 옵션이 없습니다.

아무도 아이디어가 있습니까?


@grawity 님의 답변 :

감사합니다. 도와 주셔서 감사합니다. 나는 뛰었고 strace, 당신이 말하는 것을 봅니다.

그러나 gpg2 --import ...행동에 차이가없는 것을 보더라도 . 재부팅 (gpg-agent를 시작하지 않고)하고 run gpg2 --import ...을 실행 한 후에 만 ​​작동하도록 할 수 gpg2 --decrypt ...있습니다. 그 순서가 끝나면 썬더 버드 + enigmail도 훌륭하게 작동합니다. 그러나 15 분 정도 지나면 (암호 해독에 입력 한 암호가 만료 된 것 같습니다) 그런 다음 gpg-agent이전 동작으로 돌아갑니다. 이 순서는 반복 가능합니다.

다음은 무언가를 정리하는 데 도움이되는 결과입니다.

출력 gpg2 -K:

/home/<username>/.gnupg/pubring.gpg
---------------------------------
sec   rsa4096/AAAAAAAA <date> [SC]
uid         [ultimate] <description of me>
ssb   rsa4096/BBBBBBBB <date> [E]

~의 출력 gpg-connect-agent

> keyinfo --list
S KEYINFO <keygrip associated with AAAAAAAA> D - - - P - - -
S KEYINFO <keygrip associated with BBBBBBBB> D - - - P - - -
OK

~의 출력 gpg2 -v -r <my email> -e testfile

gpg: using PGP trust model
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: This key belongs to us
gpg: reading from 'testfile'
gpg: writing to 'testfile.gpg'
gpg: RSA/AES256 encrypted for: "BBBBBBBB <description of me>"

~의 출력 gpg2 -v -d testfile.gpg

gpg: public key is BBBBBBBB
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: encrypted with 4096-bit RSA key, ID BBBBBBBB, created <date>
      "<description of me>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key

이 문제를 해결 했습니까? 나는 똑같은 문제가 있습니다.
Volker

신경 쓰지 마라. 사용할 gpg-agent필요가 있고 설치 프로그램을 (으)로 설정해야했습니다 pinentry-gtk-2. pinentry-gnome3내 시스템에 존재 하는 (으)로 설정되기 전에 작동하지 않았습니다. 수동으로 설치해야했습니다 pinentry-gtk-2.
Volker

답변:


22

… 물론 gpg2는 잘못된 파일을보고 있기 때문에 비밀 키를 찾을 수 없습니다.

그것이 보고 있는 유일한 파일 은 아닙니다 .

GnuPG 1.x (및 2.0)에서 "secring"은 키 블록의 공개 데이터의 복제본도 가지고 있었기 때문에 완전히 자체 포함 gpg -k되어 gpg -K있었습니다. 그러나 동시에 프로그램을 유지하기가 더 어렵습니다.

GnuPG는 2.1, 비밀 키는 이제 독립적으로 저장됩니다 - 그들에 의해 유지하고 GPG 에이전트 에서 그들을 유지 ~/.gnupg/private-keys-v1.d/. 그래서 모두 gpg -kgpg -K지금 pubring에서의 OpenPGP 정보를 읽을해야하지만, 후자는 추가로 요청 GPG 에이전트 인증서 비밀 키를 관련이있는에 대해. strace를 사용 하는 connect()경우 출판을 읽은 직후에 전화가 걸려야합니다.

GnuPG가 키를 자동으로 마이그레이션하지 않은 경우 전체 secring을 직접 가져 오십시오.

gpg2 --import ~/.gnupg/secring.gpg

에이전트의 내용을 수동으로 확인하려면 다음을 수행하십시오.

$ gpg-connect-agent 
> keyinfo-목록
S KEYINFO 926145FFCA32B3E6E079A0CF73EA77C40733A349 D---P---
S KEYINFO BACFB81EAFC864F4AB2926E8B1F55AD579F78D1A D---P---
S KEYINFO FF3D1DD51B9C79E148CCCEA5F7F3E25EC96048B7 D---P---
S KEYINFO 4D29EF1460F164CDB11D0FC0247214660ACDD60F D---P---
S KEYINFO 06B13685B9AA429B9CABCE480930D74B991C8DF0 D---P---
S KEYINFO B28DB8D045654E8A6A40466A07FCD9E432935E29 D---P---
확인
> / bye 
$

이것들은 "키 그립 (keygrips)"입니다 – GnuPG의 다음과 비교하십시오 :

$ gpg-목록-비밀 키 --with-keygrip
/home/fred/.gnupg/pubring.kbx
--------------------------------
초 ed25519 2018-08-18 [SC]
      2357E133AD5D24F6CB2C1B0CEF4F7ED27E252632
      키 그립 = 4D29EF1460F164CDB11D0FC0247214660ACDD60F 
uid [ultimate] Fred Foobar <fred@example.com>

나는 같은 문제가 있었다 : gpg --gen-key와 함께 사용하고 싶은 키 사용을 시도했다 gopass. 불행하게도, gopass용도는 gpg2... gpg2 --import마법처럼 일했다! 감사!
andiba

나를 위해 gpg2 --import ~/.gnupg/pubring.gpg그것을 고쳤다.
Dilawar

당신은 내 heroo입니다
Lo-Tan

1

결국, 문제는 데비안 불안정을 사용하고 있으며에 의해 버전 불일치가 도입되었다는 결론을 내 렸습니다 apt-get dist-upgrade. 나는 그것이 그들이 "불안정한"이라고 부르는 이유라고 생각합니다.


우분투 LTS에도 있습니다. Ubuntu Unity에서 GNOME으로 전환 한 후
nerdoc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.