EnigmailがPGPパスフレーズを要求せず、利用可能なキーがないと言っている


8

Thunderbirdでのenigmailを使用したメールの復号化が機能しなくなりました。これは、ポップアップに使用するように要求するフォームであるパスフレーズをパンチする機会がないためです。今はそうではなく、次のメッセージが表示されます。

エラー-メッセージを復号化するための一致する秘密/秘密鍵が見つかりません。詳細は「詳細」ボタンをクリックしてください

秘密鍵は利用可能ですが、

gpg -d Desktop/mail.eml     

フォームを表示します。パスフレーズを入力した後、ターミナル内で復号化されたメールを読むことができます。

今日、新しいキーを作成したときに、パスフレーズの問題に関する別のヒントが現れました。パスフレーズが設定されていなかったため、失効証明書を作成できませんでした。これもまた真実ではありません。

8月31日月曜日にこの問題に最初に気づきました。

私はインターネットを少しチェックしてから、次のことを行いました:

  1. gpg-agentのインスタンスが実行されていることを確認します。

    gpg-agent -v
    

    戻り値

    gpg-agent: gpg-agent running and available
    

    .gnupg / gpg-agent.confの内容:

    default-cache-ttl 0
    max-cache-ttl 0

  2. 行くdconf Editor desktop->gnome->crypto->cacheとセットgpg-cache-ttl0

  3. Thunderbird Enigmail->Clear Saved Passphrases Enigmailアラートを発します:

    パスフレーズの処理にgpg-agentを使用しています。したがって、Enigmail内からパスフレーズをクリアすることはできません。

    Thunderbird Enigmail->Preferences->Basic Remember passphrase for 0 minutes of idle time

  4. gpg-agentパスフレーズを忘れてください:

    pkill -SIGHUP gpg-agent
    
  5. Seahorse->GnuPG keys すべてのキーを削除して再インポートする

そのリストのどれも問題に違いをもたらしませんでした。Enigmailにパスフレーズをもう一度要求させるにはどうすればよいですか。

前もって感謝します!
ブロンク

編集する

  1. 削除/etc/xdg/autostart/gnome-keyring-gpg.desktopしても何も起こりませんでした。
  2. 削除seahorseしても何も起こりませんでした。
  3. 使用decrypt-file

    Couldn't decrypt file: mail.eml.pgp
    Bad passphrase
    

pinentry-gtk2Unity を使用してUbuntuにインストール
Natim

私もこの問題を抱えていますが、奇妙なことに自分のメールに署名できますが、公開鍵で署名されたメッセージを復号化しようとすると、同じメッセージが表示されます。
ジェレミア2018年

回答:


7

これを試してください:https : //www.enigmail.net/support/gnupg2_issues.php私の場合、PinentryのGraficalバージョン(pinentry-qt4パッケージ)をインストールする必要があります。

「GnuPG 2.xおよびgpg-agentに関する問題の解決

注GnuPG 2.xでは、パスフレーズを処理するための「エージェント」が必要です。デフォルトではこれはgpg-agentによって行われますが、その機能のサブセットを実装する他のツールがあります。これらの手順はgpg-agent専用です。gnome-keyring、seahorse-agent、KDE ​​Wallet Managerなどのエージェントを使用している場合、これらの手順は適用されません。最も一般的な問題

症状

最も一般的な問題は、gpg-agent(GnuPGの一部)がpinentry(パスフレーズのクエリに使用されるツール)を起動できないことです。Enigmailは次のようなメッセージを表示します。

when reading messages:
Error - no matching private/secret key found to decrypt message; click on 'Details' button for more information

when sending messages:
- Send operation aborted. Error - encryption command failed
- Send operation aborted. Key 0x....... not found or not valid. The (sub-)key might have expired

分析する方法

Try sending a signed and unencrypted message to yourself.
Check the output in the Enimgail log: go to menu Enigmail > Debugging Options > View Log.
Search for the following text: parseErrorOutput: status message. You will probably find this message several times. Check what follows below.
If the message says something like "no pinentry", "problem with the agent", "Invalid IPC response" or "problem with gpg-agent", then there is something wrong with your gpg-agent and/or pinentry setup.

それを修正する方法

Execute the following script from a terminal to find out if a graphical version of pinentry is used:

pinentry <<EOT
SETDESC Hello World
CONFIRM
EOT

You should get a graphical window with a confirmation message "Hello World". If a "window" is opened within your terminal window then pinentry is text-based, which does not work with Enigmail. To fix this, ensure that a graphical version of pinentry is installed. On Linux/Unix systems, these would typically be pinentry-qt/pinentry-qt4 or pinentry-gtk/pinentry-gtk2, and on Mac OS X pinentry-mac. Rename the existing pinentry file to "pinentry-text" or similar, and create a symlink from pinentry-qt, pinentry-qt4, pinentry-gtk, pinentry-gtk2 or pinentry-mac to pinentry. Then restart your PC.

If the above does not help, check the contents of $HOME/.gnupg/gpg-agent.conf. Make sure that there is a configuration entry pinentry-program containing the full path to a graphical version of pinentry as above. E.g.:

pinentry-program /usr/local/bin/pinentry-gtk

Then save the file and restart your PC.

If you still can't access your key, then execute the following script from a terminal:

gpg-connect-agent <<EOT
GETINFO version
EOT

The output should be something like the text below, where 2.0.26 represents the agent version number. The version number should match your gpg version number:

D 2.0.26
OK

If you get an error message like "ERR 280 not implemented" then you don't use gpg-agent, but one of the alternatives like gnome-keyring. We recommend you switch to gpg-agent by disabling your current agent. See e.g. askubuntu for how to disable gnome-keyring or how to disable KDE wallet.

If you get a useful result from above, then execute the following script from a terminal:

gpg-connect-agent <<EOT
GET_CONFIRMATION Hello
EOT

Pinentry should now open as a graphical window (just like above), with the difference to the step above that this instance of pinentry was launched from gpg-agent. If this is successful, then GnuPG 2 should work correctly in Enigmail.

If gpg-agent still cannot launch pinentry from Enigmail, then you need to start debugging gpg-agent. Execute the following commands from a terminal:

killall gpg-agent
gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

This will start gpg-agent from the command line, open a new shell and print the debug output to that shell. If the command succeeded, you will see somehting like:
gpg-agent[76979]: gpg-agent 2.0.26 started
Leave the terminal window untouched, start Thunderbird and try to use Enigmail. As you'll try to access gpg-agent, you will see the output in your terminal window. If gpg-agent cannot start pinentry successfully, you will see something like this:

gpg-agent[76993]: starting a new PIN Entry
gpg-agent[76993]: chan_19 <- ERR 67109133 can't exec `/usr/bin/pinentry': No such file or directory
gpg-agent[76993]: chan_19 -> BYE
gpg-agent[76993]: can't connect to the PIN entry module: IPC connect call failed
gpg-agent[76993]: command get_passphrase failed: No pinentry

Press Ctrl+D in the terminal to end the debugging session. The bold line should tell you the reason for the error (in the example above, pinentry cannot be found). Try to fix the error and repeat the test."

これにより理論的には質問に答えることができますが、ここに答えの本質的な部分を含め、参照用のリンクを提供することが望ましいでしょう
Karl Richter

最後のビットは「gpg-agentがまだEnigmailからpinentryを起動できない場合...」と表示しますが、pinentryは正常に起動しますが、復号化が依然として機能しない場合、ガイドはここでは役に立ちません...
nerdoc

1

私も同じ問題を抱えていましたが、gpg-agentを強制終了することが回避策であることがわかりました。

(ソースコードから、〜/ .thunderbirdの下のどこかにある "defaults / preferences / enigmail.js"ファイルを編集し、 "extensions.enigmail.logDirectory"プロパティを "/ tmp"に設定することで、enigmailのログ記録を有効にできることがわかりました。ログファイル「/tmp/enigdbug.txt」には、enigmailが実行していた「--use-agent」で終わる完全なgpgコマンドが示されています。このgpgコマンドをコマンドラインから実行し、暗号化されたメールメッセージを送りました。 「gpg:問題のあるエージェント:PINENTryがありません」というエラーメッセージで不平を言いました。そのエラーメッセージをグーグル検索すると、gpg-agentを強制終了する提案が出されました。一方で、NSAはPKI暗号化のユーザーエクスペリエンスがとてもごみです。)


OPと同じ問題があります。逆に、enigdbug.txtにある正確なコマンドを実行すると、完璧な結果が得られます。:\
Joel Cross

ここでは役に立ちませんでした。、が、gpg -d message.eml同じ問題が帽子:gpg: public key decryption failed: No passphrase given-パスフレーズのための私を求めずに
nerdoc

1

同様の問題がありました。Thunderbirdは何度も私のキーのパスワードを入力するように求めていましたが、Gnomeキーリングはそれを覚えていませんでした。問題は、それgpg-agentが私のセッションで実行されていなかったことでした。現在のセッションで手動で開始すると、問題は消えました:

gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

問題を永続的に解決するには、エージェントがセッションで実行されていることを確認する必要があります。1 /etc/X11/Xsession.d/90gpg-agent. 次のファイルがあることを確認します。鉱山は次のようになります。

  : ${GNUPGHOME=$HOME/.gnupg}

  GPGAGENT=/usr/bin/gpg-agent
  PID_FILE="$GNUPGHOME/gpg-agent-info-$(hostname)"

  if grep -qs '^[[:space:]]*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" &&
     test -x $GPGAGENT &&
     { test -z "$GPG_AGENT_INFO" || ! $GPGAGENT 2>/dev/null; }; then

     if [ -r "$PID_FILE" ]; then
         . "$PID_FILE"
     fi

     # Invoking gpg-agent with no arguments exits successfully if the agent
     # is already running as pointed by $GPG_AGENT_INFO
     if ! $GPGAGENT 2>/dev/null; then
         STARTUP="$GPGAGENT --daemon --sh --write-env-file=$PID_FILE $STARTUP"
     fi
  fi
  1. ~/.gnupg/gpg.conf少なくとも次の行を含むファイルがあることを確認します。

    use-agent
    

そうでない場合は、次のコマンドで追加できます。

echo "use-agent" >>  ~/.gnupg/gpg.conf 

use-agentOpenGPG 2.1ではもう必要ありません-どの場合でもエージェントが使用されます。
nerdoc

0

pinentryについて同じエラーエラーが発生しました。最後に、gpg-agentが間違ったpinentryを使用していることがわかりました。〜/ .gnupg / gpg-agent.confを編集して次の行を追加することにより、正しいpinentryを設定することで解決しました

pinentry-program /usr/bin/pinentry-gtk-2

私が作業しているシステムのデフォルトはpinentry-x11(さまざまなウィンドウマネージャーを許可する全社的なインストールです)でしたが、gnome3では機能しませんでした。-したがって、gpg-agentが使用中の実際のウィンドウマネージャーの正しいpinentryを使用していることを確認する必要があります。


0

私の場合はpinentrypinentry-curses(ポインタをサポートするコマンドライン)以外にツールがなかっただけです。したがって、Fedoraでこれらのパスフレーズ/ PINエントリダイアログのいずれかをインストールします。

  • pinentry-qt.x86_64 Qt4に基づく;
  • pinentry-gtk.x86_64 GTK +に基づく;
  • pinentry-emacs.x86_64 emacs;
  • pinentry-gnome3.x86_64 GNOME 3の場合。

GNOME 3 pinentryパッケージを使用しました。


0

thunderbirdで、メッセージを選択し、ハンバーガーをクリックして、Enigmailメニューを展開し、復号化/検証を選択します。メッセージが復号化されるパスワードプロンプトが表示されます。


違いはありません...
nerdoc

明確にできますか?パスワードプロンプトが表示されないか、メッセージが復号化されていませんか?
間違った氏2007

0

同様の問題が発生しました!以下で実行されるgpg-agentデバッグに続いて:

gpg-agent --debug-level expert --use-standard-socket --daemon /bin/sh

enigmailとgpgの間で何かが壊れていることがわかり、パスフレーズを要求することはありませんでした。しかし、パスフレーズがプリロードされている場合、すべてが完全に機能しました。

私の場合、それが過去の問題でしたが、私は〜/ .gnupg / gpg.confのfollowオプションを強制しました

pinentry-mode loopback

これはプロセスを壊しました。enigmailがエキスパートモードを有効にしてenigmailを実行しているコマンドを確認してから、「デバッグオプション-> View Console」で確認できます。

コメントし、すべてが働いた。

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