GPG pinentry 구성 문제

GPG pinentry 구성 문제

두 명의 호스트 A와 B가 있습니다. AI에 gpg pinentry프로그램 설정이 있는데 pinentry-curses어떻게 하는지 모르겠어요. A와 B의 차이점을 찾을 수 없는 것 같지만 A(GUI 없음)에서는 gpg작동 하지 않습니다 pinentry-curses. B에서는 터미널, 콘솔 또는 다른 호스트에 대한 SSH에 있는지 여부에 관계없이 작동합니다. , 상관없는 것 같습니다. 나는 항상 pinentry-curses. A에서는 핀을 입력할 수 없기 때문에 모든 작업이 실패합니다.

무엇을 더 확인해야할지 모르겠습니다. 내가 보려고 노력한 모든 것이 여기에 있습니다.

먼저, 심볼릭 pinentry링크:

me@b ~ % ls -l $(dirname $(which pinentry)) | grep pinentry
lrwxrwxrwx 1 root root            14 Dec  8 00:29 pinentry -> pinentry-gtk-2
-rwxr-xr-x 1 root root         60832 Dec  8 00:29 pinentry-curses
-rwxr-xr-x 1 root root         48256 Dec  8 00:29 pinentry-emacs
-rwxr-xr-x 1 root root         65088 Dec  8 00:29 pinentry-gnome3
-rwxr-xr-x 1 root root         73792 Dec  8 00:29 pinentry-gtk-2
-rwxr-xr-x 1 root root        103280 Dec  8 00:29 pinentry-qt
-rwxr-xr-x 1 root root         52416 Dec  8 00:29 pinentry-tty

me@b ~ % diff <(ssh a 'ls $(dirname $(which pinentry)) | grep pinentry') <(ls $(dirname $(which pinentry)) | grep pinentry)

gpg.conf파일은 동일합니다(모듈로 주석 및 빈 줄).

me@b ~ % diff <(ssh a "egrep -v '^#|^$' ~/.gnupg/gpg.conf") <(egrep -v '^#|^$' ~/.gnupg/gpg.conf)  

내 폴더의 내용에는 ~/.gnupg큰 차이가 없는 것 같습니다.

me@b ~ % diff <(ssh a ls -R ~/.gnupg) <(ls -R ~/.gnupg)
2c2
< S.gpg-agent
---
> crls.d
8a9
> S.gpg-agent
9a11,13
> 
> /home/me/.gnupg/crls.d:
> DIR.txt

다음 중 하나에 대한 파일이 없습니다 gpg-agent.conf.

me@b ~ % ls ~/.gnupg/gpg-agent.conf
ls: cannot access '/home/me/.gnupg/gpg-agent.conf': No such file or directory
me@b ~ % ssh a ls ~/.gnupg/gpg-agent.conf
ls: cannot access '/home/me/.gnupg/gpg-agent.conf': No such file or directory

둘 다 pinentry-curses설치되었습니다:

me@b ~ % pacman -Ql pinentry | grep -i pinentry-curses
pinentry /usr/bin/pinentry-curses
me@b ~ % ssh a 'pacman -Ql pinentry | grep -i pinentry-curses'
pinentry /usr/bin/pinentry-curses

내 환경은 거의 같은 것 같습니다.

me@b ~ % env | egrep -i 'ssh|gpg|pgp|pinentry'
SSH_AGENT_PID=519
SSH_AUTH_SOCK=/tmp/ssh-yC9qsRh9Uf2c/agent.518
me@b ~ % ssh a "env | egrep -i 'ssh|gpg|pgp|pinentry'"
SSH_CLIENT=192.168.1.10 54816 22
SSH_CONNECTION=192.168.1.10 54816 192.168.1.2 22

그리고 gpg-agent두 호스트의 s는 동일한 매개변수로 호출됩니다.

me@b ~ % cat /proc/$(pgrep gpg-agent)/cmdline
gpg-agent--homedir/home/me/.gnupg--use-standard-socket--daemon%
me@b ~ % ssh a 'cat /proc/$(pgrep gpg-agent)/cmdline'
gpg-agent--homedir/home/me/.gnupg--use-standard-socket--daemon%

답변1

pinentryGnuPG는 일반적으로 심볼릭 링크 /usr/bin/pinentry나 유사한 솔루션을 통해 플러그 가능하고 구성 가능한 구현을 사용합니다 .

Debian 및 그 파생 제품에서는 update-alternative설치 중인 시스템을 표시할 수 있습니다.

update-alternatives --display pinentry

그리고 그것을 변경

update-alternatives --config pinentry

수동으로 "망쳤다"면 pinentry그것이 가리키는 곳을 확인하십시오.

ln -l `which pinentry`

(그러나 기호 링크를 재귀적으로 해결해야 할 수도 있습니다).

관련 정보