Enigmail은 pgp 암호를 요구하지 않지만 사용할 수있는 키가 없다고 말합니다


8

썬더 버드에서 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
    최대 캐시 -ttl 0

  2. 이동 dconf Editor desktop->gnome->crypto->cache및 설정 gpg-cache-ttl0

  3. Thunderbird Enigmail->Clear Saved Passphrases Enigmail Alert에게 다음과 같이 말합니다.

    암호 구 처리에 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

나도이 문제가 있지만 이상하게도 내 이메일에 서명 할 수는 있지만 내 pubkey로 서명 된 메시지의 암호를 해독하려고 할 때 동일한 메시지가 표시됩니다.
Geremia

답변:


7

이것을 시도하십시오 : https://www.enigmail.net/support/gnupg2_issues.php 필자의 경우 grafical 버전의 pinentry (pinentry-qt4 패키지)를 설치해야합니다.

"GnuPG 2.x 및 gpg-agent 관련 문제 해결

참고 GnuPG 2.x에는 암호를 처리하기 위해 "에이전트"가 필요합니다. 기본적으로 이것은 gpg-agent에 의해 수행되지만 기능의 하위 세트를 구현하는 다른 도구가 있습니다. 이 지침은 gpg-agent 전용입니다. gnome-keyring, seahorse-agent 또는 KDE Wallet Manager와 같은 상담원을 사용하는 경우 이러한 지침이 적용되지 않습니다. 가장 일반적인 문제

조짐

가장 일반적인 문제는 gnu-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.emlgpg: public key decryption failed: No passphrase given
그럼에도

1

나는 비슷한 문제가 있었다. 썬더 버드는 계속해서 내 열쇠의 암호를 입력하도록 요구했지만 그놈 열쇠 고리는 그것을 기억하지는 못했지만 기억하지 못했습니다. 문제는 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가 잘못된 협착 점을 사용하고 있음을 알아 냈습니다. ~ / .gnupg / gpg-agent.conf 를 편집 하고 다음 줄을 추가하여 올바른 pinentry를 설정하여 해결했습니다.

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

내가 일하고있는 시스템의 기본값은 pinentry-x11 (다양한 창 관리자를 허용하는 회사 전체 설치)이며 gnome3에서는 작동하지 않았습니다. -따라서 gpg-agent가 사용중인 실제 창 관리자에 대해 올바른 연결을 사용하고 있는지 확인해야합니다.


0

제 경우에는 (포인터 지원 명령 줄)을 pinentry제외한 도구 가 없었습니다 pinentry-curses. 따라서 Fedora에서 다음 암호 / PIN 입력 대화 상자를 설치하십시오.

  • pinentry-qt.x86_64 Qt4에 기초하여;
  • pinentry-gtk.x86_64 GTK + 기반;
  • pinentry-emacs.x86_64 이맥스;
  • pinentry-gnome3.x86_64 그놈 3

그놈 3 pinentry패키지를 사용했습니다 .


0

썬더 버드에서 메시지를 선택하고 햄버거를 클릭 한 다음 Enigmail 메뉴를 펼치고 암호 해독 / 확인을 선택하십시오. 메시지가 해독 된 후 비밀번호 프롬프트가 표시됩니다.


차이가 없습니다 ...
nerdoc

당신은 명확히 할 수 있습니까? 비밀번호 프롬프트가 표시되지 않거나 메시지가 해독되지 않습니까?
Mr. Wrong

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이 실행중인 명령을 확인할 수 있습니다.

댓글을 달고 모든 것이 작동했습니다.


0

우분투 Budgie 18.04와 같은 문제가있었습니다. 어떤 이유로 pinentry-gnome3대화 상자가 표시되지 않았습니다.

pinentry-fltk업데이트 대안에서 설치 하고 선택하여 문제를 해결할 수 있습니다.

sudo apt-get install pinentry-fltk
sudo update-alternatives --config pinentry

표시된 대화 상자에서 usr/bin/pinentry-fltk

There are 2 choices for the alternative pinentry (providing /usr/bin/pinentry).

  Selection    Path                      Priority   Status
------------------------------------------------------------
  0            /usr/bin/pinentry-gnome3   90        auto mode
* 1            /usr/bin/pinentry-fltk     70        manual mode
  2            /usr/bin/pinentry-gnome3   90        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.