gpg-agent 및 SSH에서 Pinentry가 실패 함


12

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가 키를 찾지 만 실제로는 서명하지 못하는 것을 알 수 있습니다. 에서 로그를 보면 프로그램 gpg-agent을 시작하지 못하여 pinentryPIN 코드를 요청하지 않는 것을 알 수 있습니다.

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로 무슨 일이 일어나고 있는지 이해할 수 있습니까?


나는 "에이전트와 문제 : 부적절한 IOCTL을 장치에 대해"비슷한을 얻고 있었다 파이프의 출력하려는 오류 targpg2맥 OS X와에 비고의 대답은 나를 위해 그것을 해결.
Kenny Evitt

답변:


17

글쎄, 이것은 나를 위해 일했다 :

export GPG_TTY=`tty`

.bashrcgpg를 사용하기 전에 이것을 추가 하거나 그냥 차십시오.


10

GPG 웹 사이트 자체 에서 답을 찾았습니다 . 상담원이 Pinentry 창을 표시 할 화면을 찾지 못했습니다. 방금 .*shrc파일에 다음을 넣어야했습니다 .

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

감사합니다! 이것은 문제를 정확히 찾아내는 데 도움이되었습니다 (펜 트리 창이 표시되지 않음). 그러나 위의 명령은 작동하지 않습니다. 내가 gpg-connect-agent하면 출력 can't connect to the agent: IPC connect call failed합니다. 제대로 작동 gpg-agent하고 GPG_AGENT_INFO환경 변수가 올바르게 설정되었습니다.

에 추가 export GPG_AGENT_INFO하여 흥미롭게 추가 하여 .bashrc의 문제를 해결했습니다 gpg-connect-agent IPC connect call failed. echo $GPG_AGENT_INFO내 껍질에 괜찮 았기 때문에 이전에 이것을 추가하지 않았지만 여전히 필요하다는 것이 밝혀졌습니다.

1
나는이 명령을 복사하여 그들이 .. 자신의 사용자 폴더에 "1"이라는 파일이 왜 궁금 얼마나 많은 사람들이 알고 싶어요
케난 Sulayman

1
@KenanSulayman 좋은 캐치. 명령을 수정했습니다.
Spack

2
"에이전트가 Pinentry 창을 표시 할 화면을 에이전트가 찾지 못했습니다 ..." -Lol ... 1980 년 소프트웨어 지연. GPG를 사용하는 사람은 거의 없습니다. 아마도 GPG는 내가 작업중 인 것을 선택하고 쓸모없는 오류 메시지를 중단해야합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.