gpg2:秘密鍵なし


21

私は問題なく1年以上enigmailを使用してきましたが、今日は機能しません。

次の興味深い事実が見つかりました。

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を起動せずに)再起動し、実行してgpg2 --import ...から実行する場合にのみ、動作させることができますgpg2 --decrypt ...。このシーケンスの後、thunderbird + 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

あなたはこれを解決することになりましたか?私はまったく同じ問題を抱えています。
フォルカー

気にしないで、私はそれを修正しました。使用する必要がgpg-agentあり、pinentryプログラムをに設定する必要がありましたpinentry-gtk-2pinentry-gnome3システムに存在するに設定される前に、機能しませんでした。手動でインストールする必要がありましたpinentry-gtk-2
フォルカー

回答:


22

…もちろん、間違ったファイルを検索しているため、gpg2は秘密鍵を見つけることができません。

見ているのはそれだけではありません。

それは完全に自己完結した(との唯一の違いようのGnuPG 1.1(および2.0)では、同様にあなたの鍵ブロックの公開データの複製コピーを持っていた「secring」gpg -kgpg -Kそれを読んだどのファイルでした) 、しかし同時にプログラムの維持がより困難です。

GnuPG 2.1では、秘密鍵は独立して保存されるようになりました–秘密鍵はgpg-agentによって管理され~/.gnupg/private-keys-v1.d/ます。だから、両方gpg -kgpg -K今PUBRINGからのOpenPGP情報を読み取ることがありますが、後者はさらに尋ねGPG-エージェント証明書は秘密鍵が関連付けられているかについて。straceを使用している場合connect()、pubringを読んだ直後に呼び出しに気付くはずです。

GnuPGがキーを自動的に移行しなかった場合は、secring全体を直接インポートします。

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

エージェントの内容を手動で確認するには:

$ 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---
OK
> / bye 
$

これらは「キーグリッド」です-GnuPGのセキュリティと比較してください:

$ gpg --list-secret-keys --with-keygrip
/home/fred/.gnupg/pubring.kbx
--------------------------------
sec ed25519 2018-08-18 [SC]
      2357E133AD5D24F6CB2C1B0CEF4F7ED27E252632
      キーグリップ= 4D29EF1460F164CDB11D0FC0247214660ACDD60F 
uid [ultimate] Fred Foobar <fred@example.com>

私も同じ問題を抱えていました:でgpg --gen-key使用したいキーusignを生成しようとしましたgopass。残念ながら、gopass使用gpg2... gpg2 --import魅力のように働いた!ありがとう!
andiba

私にとってはgpg2 --import ~/.gnupg/pubring.gpgそれを修正しました。
ディラワー

あなたは私のherooだ
LO-タン

1

最終的に、私はDebian Unstableを使用していて、によって導入されたバージョンの不一致があるという問題であると判断しましたapt-get dist-upgrade。それが彼らがそれを「不安定」と呼ぶ理由だと思います。


Ubuntu LTSにもあります。Ubuntu UnityからGNOMEに切り替えた後。
nerdoc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.