gpg-agent 및 SSH를 사용하여 Pinentry가 실패함

gpg-agent 및 SSH를 사용하여 Pinentry가 실패함

저는 Fedora 22를 사용하고 있습니다. Yubikey Neo에 있는 PGP 인증 하위 키를 사용하여 SSH 연결을 인증하도록 GnuPG를 설정하려고 합니다.

다음과 같이 gpg-agent를 시작하는 시스템 장치가 있습니다.

/usr/bin/gpg-agent --homedir=%h/.gnupg --daemon --use-standard-socket

구성에서 SSH 지원을 활성화했습니다.

enable-ssh-support
pinentry-program /usr/bin/pinentry-gtk

설정의 다른 부분에는 추가가 포함됩니다.주요 요점~/.gnupg/sshcontrol내 키를 파일 에 추가하려면 내 키를 추가하세요.공개 키원격 호스트에 선언하고환경 변수.

전역적인 관점에서 다양한 로그를 살펴보면 설정이 작동하는 것 같습니다. SSH가 키를 찾았지만 실제로 서명할 수는 없다는 것을 알 수 있습니다. 로그를 보면 프로그램 시작에 실패하여 PIN을 요청하지 않는다는 gpg-agent것을 알 수 있습니다 .pinentry

2015-07-22 23:23:28 gpg-agent[6758] DBG: error calling pinentry: Ioctl() inappropriate for a device <Pinentry>
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_8 -> BYE
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 -> CAN
2015-07-22 23:23:28 gpg-agent[6758] DBG: chan_7 <- ERR 100663573 The IPC call was canceled <SCD>
2015-07-22 23:23:28 gpg-agent[6758] smartcard signing failed: Ioctl() inappropriate for a device
2015-07-22 23:23:28 gpg-agent[6758] ssh sign request failed: Ioctl() inappropriate for a device <Pinentry>

여기서 볼 수 있는 것은 SSH와 함께 사용될 때 pinentry를 호출할 때 특정 ioctl 호출이 실패한다는 것입니다. 그러나 다음 명령을 실행하면:

$ echo "Test" | gpg2 -s

PIN 창이 나타나고 모든 것이 정상입니다.

이 설정과 SSH에서 무슨 일이 벌어지고 있는지 이해하도록 도와주실 수 있나요?

답변1

글쎄, 이것은 나에게 효과적이었습니다.

export GPG_TTY=`tty`

gpg를 사용하기 전에 이를 추가하거나 .bashrc시작하십시오.

답변2

위에서 이미 답을 찾았습니다GPG 웹사이트그 자체. 상담원은 Pinentry 창이 표시된 화면을 찾을 수 없습니다. 방금 파일에 다음을 넣었습니다 .*shrc.

echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2>&1

관련 정보