GPG pinentry는 gpg-agent를 전달할 때 비밀번호를 입력하는 동안 키 입력을 받지 않습니다.

GPG pinentry는 gpg-agent를 전달할 때 비밀번호를 입력하는 동안 키 입력을 받지 않습니다.

내 gpg-agent를 원격 서버로 전달할 때 내 개인 키가 나열된 것을 볼 수 있습니다. 로컬에서 키를 잠금 해제하더라도 원격 시스템에서 잠금을 해제해야 합니다.

그러나 원격 컴퓨터에서 잠금을 해제하려고 하면 로컬 컴퓨터로 pinentry가 전송됩니다. 사용시 비밀번호를 입력하지 못할 pinentry-tty수도 있습니다 pinentry-curses.

이상한 동작이 있고 일부 키 입력을 받고 일부는 일반 텍스트로 표시되기도 합니다.

pinentry --version
pinentry-curses (pinentry) 1.1.0

현지의

gpg --version
gpg (GnuPG) 2.2.27

외딴

gpg --version
gpg (GnuPG) 2.2.12

다음은 내 로컬 구성 파일입니다.

gpg-agent.conf

extra-socket /run/users/1000/gnupg/S.gpg-agent.extra
pinentry-program /usr/bin/pinentry-curses

ssh.config

Host remote
    HostName <ip-address>
    User <username>
    RemoteForward /run/users/1000/gnupg/S.gpg-agent /run/users/1000/gnupg/S.gpg-agent.extra

StreamLocalBindUnlink또한 원격 서버에 /etc/ssh/sshd_config.

일부 로컬 터미널에 pinentry가 표시되도록 "강제"하려면 다음 명령을 사용해야 했습니다.

gpg-connect-agent updatestartuptty /bye

원격 서버에서 서명을 시도하자마자 로컬 터미널에 다음 화면이 나타납니다.

┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site.                              │
│                                                                │
│ Please enter the passphrase to unlock the OpenPGP secret key:  │
│ "username <email>"                                             │
│ 256-bit EDDSA key, ID 1234567890,                              │
│ created 2021-01-01.                                            │
│                                                                │
│                                                                │
│ Passphrase: __________________________________________________ │
│                                                                │
│         <OK>                                    <Cancel>       │
└────────────────────────────────────────────────────────────────┘

비밀번호를 입력하려고 하면 다음 메시지가 나타납니다.

┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site.                              │
│                                                                │
│ Please enter the passphrase to unlock the OpenPGP secret key:  │
│ "username <email>"                                             │
│ 256-bit EDDSA key, ID 1234567890,                              │
│ created 2021-01-01.                                            │
│                                                                │
│                                                                │
│ Passphrase: *elo w**wd    ____________________________________ │
│                                                                │
│         <OK>                                    <Cancel>       │
└────────────────────────────────────────────────────────────────┘

Pinentry를 닫으면 명령줄에서 부분적인 일반 텍스트를 볼 수 있습니다.

> elo wd

.pinentry-tty

내 로컬 컴퓨터에서는 Arch Linux를 실행하고 있지만 Macos에서도 동일한 동작이 발생합니다. 내 터미널 에뮬레이터에는 simple terminal및 각각을 사용합니다.iterm2

원격 컴퓨터가 Debian Buster를 실행하고 있습니다.

pinentry-tty또는 을(를) 계속 사용하고 싶습니다 pinentry-curses.

또한 원격 서버에서 잠금을 해제하지 않고도 GPG 개인 키를 로컬에서 "잠금 해제"하고 원격으로 전달할 수 있습니까?

편집하다:

4년 전에 누군가 같은 질문을 한 것 같네요!

원격 사이트에서 로컬 gpg-agent를 사용할 때 혼합 입력

불행히도 답변이 없습니다.

답변1

MacOS에서도 같은 문제가 있습니다.

$ gpg --version
gpg (GnuPG/MacGPG2) 2.2.34

$ pinentry --version
pinentry-curses (pinentry) 1.2.0

동일한 iTerm 창에서. 달리기:

$ killall gpg-agent && gpg-agent --daemon --pinentry-program /usr/local/bin/pinentry

그런 다음 빠른 테스트를 실행하십시오.

$ echo "test" | gpg --clearsign

이 문제는 pinentry동일한 터미널 창의 제한으로 인해 발생합니다.

관련 정보