gpg2: gizli anahtar yok


21

Enigmail'i bir yıldan fazla bir süredir sorunsuz olarak kullanıyorum ve bugün işe yaramıyor.

Aşağıdaki ilginç gerçeği buldum:

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

Makinemde gpg sürüm 2 ile bir şey bozuldu.

Bu beni görmeye itti:

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

Bu sorunun kökü gibi görünüyor ... elbette gpg2gizli anahtarı bulamıyor çünkü yanlış dosyaya bakıyor.

gpg2İşlerim iyi olduğunda nasıl başarısız olurum gpg? Gizli anahtarların nereden okunduğunu belirtmek için herhangi bir seçenek göremiyorum.

Herhangi bir fikri olan var mı?


@Grawity kullanıcısının yanıtı :

Teşekkürler, yardımın için teşekkür ederim. Koştum straceve neden bahsettiğinizi anlıyorum.

Ancak, gpg2 --import ...davranışlarda hiçbir fark görmedikten sonra bile . Ben sadece (gpg-agent'ı başlatmadan) yeniden başlat, çalıştır gpg2 --import ..., sonra çalıştırırsanız işe alabilirsiniz gpg2 --decrypt .... Bu diziden sonra, thunderbird + enigmail de iyi davranır. Ancak, 15 dakika kadar sonra (tahminim şifresini çözmek için girdiğim parolanın süresi doldu), sonra gpg-agenteski davranışına geri döndü. Bu dizi tekrarlanabilir.

Yani, herhangi bir şeyi temizlemeye yardımcı olursa, bazı çıktılar:

çıktı gpg2 -K:

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

çıktı gpg-connect-agent

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

çıktı 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>"

çıktı 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

Sonunda bunu çözdün mü? Aynı problemi yaşıyorum.
Volker

Boşver, düzelttim. Kullanılması gpg-agentve pinentry programının ayarlanması gerekiyordu pinentry-gtk-2. pinentry-gnome3Sistemimde var olana ayarlanmadan önce , ama işe yaramadı. Manuel olarak kurmak zorunda kaldım pinentry-gtk-2.
Volker

Yanıtlar:


22

… Elbette gpg2 gizli anahtarı bulamıyor çünkü yanlış dosyaya bakıyor.

Baktığı tek dosya bu değil .

Tamamen kendi kendine yeten (ve arasındaki tek fark bu yüzden GnuPG 1.x (ve 2.0) olarak, yanı senin keyblock genel verilerin bir kopyasını için kullanılan "secring" gpg -kve gpg -Kokumak istediğim dosya idi) , ancak aynı zamanda programın sürdürülmesi daha zordur.

GnuPG 2.1'de gizli anahtarlar artık bağımsız olarak saklanıyor - gpg-agent tarafından korunuyor ve bu da onları içeri alıyor ~/.gnupg/private-keys-v1.d/. Yani hem gpg -kve gpg -Kşimdi pubring gelen OpenPGP bilgileri okumak zorunda, ama ikincisi ilaveten sorar gpg-agent sertifikaları gizli anahtarlarını ilişkilendirmiş hangi. Eğer kullanıyorsanız strace , bir fark olmalıdır connect()pubring okuduktan sonra çağrı hakkı.

GnuPG anahtarları otomatik olarak geçirmediyse, tüm dizgeyi doğrudan içe aktarın:

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

Aracının içeriğini manuel olarak kontrol etmek için:

$ gpg-connect-agent 
> keyinfo --list
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 - - -
tamam
> / bye 
$

Bunlar "keygrips" dir - bunları GnuPG'nin ayrıştırmasıyla karşılaştırın:

$ gpg --list-secret-keys --with-keygrip
/home/fred/.gnupg/pubring.kbx
--------------------------------
sn ed25519 2018-08-18 [SC]
      2357E133AD5D24F6CB2C1B0CEF4F7ED27E252632
      Tuş takımı = 4D29EF1460F164CDB11D0FC0247214660ACDD60F 
uid [nihai] Fred Foobar <fred@example.com>

Aynı sorunu yaşadım: Kullanmak gpg --gen-keyistediğim bir anahtar usign üretmeye çalıştım gopass. Ne yazık ki, gopasskullanımlar gpg2... gpg2 --importbir cazibe gibi çalıştı! Teşekkürler!
andiba

Benim için gpg2 --import ~/.gnupg/pubring.gpgdüzelttim.
Dilawar

Sen benim kahramanımsın
Lo-Tan

1

Sonunda, sorunun Debian Kararsız'ı kullandığım ve bir apt-get dist-upgrade. Sanırım buna "Kararsız" diyorlar.


Ben de Ubuntu LTS'de var. Ubuntu Unity'den GNOME'a geçtikten sonra.
nerdoc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.