GUI에서 열 때 GPG Pinentry가 느리지만 CLI에서 열 때 빠른 이유는 무엇입니까?

GUI에서 열 때 GPG Pinentry가 느리지만 CLI에서 열 때 빠른 이유는 무엇입니까?

이 동작에 대한 디버깅 단계를 파악하기는 어렵습니다.

몇 가지 명령을 실행 gpg하면 일반적으로 약 20초 후에 GUI Pinentry 창이 팝업되어 비밀번호를 입력하고 명령을 계속 실행할 수 있습니다.

그러나 때로는 구성을 변경하지 않고도 터미널에 프롬프트가 즉시 나타납니다. 다른 드문 경우에는 GUI Pinentry가 즉시 실행됩니다.

한 모니터에서 GUI Pinentry를 실행하는 동안 GUI Pinentry가 즉각적으로 실행되는 것을 발견한 적이 있습니다. 저는 보통 HDMI를 통해 외부 모니터를 노트북에 연결합니다.

터미널에서 프롬프트를 발견한 또 다른 때는 창 관리자가 충돌했을 때 별도의 TTY에서 Xorg 서버 프로세스를 종료하고 창 관리자를 다시 시작했을 때였습니다.

저는 Manjaro Linux를 실행하고 StumpWM을 창 관리자로 사용하고 있습니다. 이와 관련된 다른 소프트웨어나 구성이 무엇인지 잘 모르겠습니다.

답변1

--daemonizeTLDR: 플래그를 에 전달 해야 합니다 gnome-keyring-daemon.

나는 /usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh내 안에 있습니다 .xinitrc.

매개변수를 추가하면 --daemonize문제가 해결된 것 같습니다. /usr/bin/gnome-keyring-daemon --daemonize --start --components=gpg,pkcs11,secrets,ssh

다음은 유사하지만 동일하지 않은 문제가 발생할 경우를 대비하여 이 문제를 해결하기 위해 취한 문제 해결 단계의 혼란스러운 단계입니다.

나는 gpg, keyring, gpg-agent, pinentry, gpg 비밀번호 힌트와 같이 관련성이 있다고 생각되는 일련의 키워드로 시작했습니다.

journalctl -xe관련 정보에 대한 출력을 검색합니다 . 이 경우에는 다음이 표시됩니다.

비밀 서비스를 사용하여 키의 비밀번호를 조회할 수 없습니다. <...>: org.freedesktop.secrets에 대해 StartServiceByName을 호출하는 중 오류가 발생했습니다...>

이것은 나에게 검색할 또 다른 키워드를 제공합니다: org.freedesktop.secrets. 출력을 살펴보면 journalctl다른 항목이 표시됩니다.

dbus-daemon[2210]: [session uid=1000 pid=2208] 'org.freedesktop.secrets' 서비스를 활성화할 수 없습니다: 시간 초과(service_start_timeout=120000ms)

이것은 나에게 또 다른 핵심 단어를 제공합니다 dbus-daemon...

dbus-monitor나는 DBus를 통해 전송되는 내용을 살펴보고 오류 출력을 읽곤 했습니다 .

org.freedesktop.secrets또한 DBus 가 실행 중인지 확인하기 위해 메시지를 보냈습니다 . (https://rtfm.co.ua/en/what-is-linux-keyring-gnome-keyring-secret-service-and-d-bus/)

dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
...
string "org.freedesktop.secrets"
...

모든 것은 서비스가 실행되고 있지 않음을 나타냅니다 org.freedesktop.secrets.

gpg-agent, org.freedesktop.secrets, 는 어떻게 dbus-daemon연결되어 있나요?

gpg-agent"DBus"를 통해 "Keyring"과 대화하세요. 제 경우에는 키체인이 입니다 gnome-keyring-daemon.

답변2

나는 또한이 문제에 직면했습니다. 매번 핀트리가 나타날 때까지 25초를 기다려야 합니다.

문제가 키링에 있다는 Eric Ihli의 답변을 통해 다음을 통해 기능을 끌 수 있습니다.

# ~/.gnupg/gpg-agent.conf
...

# Don't ask gnome-keyring for password
no-allow-external-cache

...

관련 정보