gpg-agent는 ssh-add보고“에이전트 거부 작업”으로 SSH 키를 거부합니다


12

아치 리눅스에서 openssh7.5p1 및 gnupg 2.1.21을 사용하고 있습니다 (이것은 아치와 함께 제공되는 기본 버전입니다). gpg-agentssh 에이전트 로 사용 하고 싶습니다 . 나는 내 안에 다음을 넣었다 ~/.gnupg/gpg-agent.conf.

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

Arch는 systemd에서 자동으로 gpg-agent를 시작하므로

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

내가 실행할 때 ssh-add -lID를보고하지 않고 프로세스를 ps보고합니다 gpg-agent --supervised.

불행히도을 실행 ssh-add하면 키 유형에 관계없이 작동하지 않습니다. 다음은 dsa를 시도한 방법의 예입니다.

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

다른 모든 gpg 기능은 올바르게 작동합니다 (암호화 / 복호화 / 서명). 또한 ssh와 함께 직접 사용하면 생성 된 키가 제대로 작동 ssh-agent하고 openssh와 함께 제공된 키를 실행하면 올바르게 작동합니다 .

설명서 ssh-add에 키를 추가해야 ~/.gnupg/sshcontrol하지만 아무 일도 일어나지 않습니다.

내 질문 : openssh 's ssh-keygen에 의해 생성 된 키를로드하는 가장 쉬운 방법은 무엇 gpg-agent이며 누군가 어떻게 작동하는지 보여주는 터미널 세션을 잘라 붙여 넣을 수 있습니까?


이 질문을 제기 해 주셔서 감사합니다. 이것은 때때로 저에게 일어나며 영구적 인 해결책이 있습니까?
gf_ 2016

답변:


27

대답은 분명히 실행되었습니다.

echo UPDATESTARTUPTTY | gpg-connect-agent

왜 pinentry 프로그램이 파일 암호 해독과 같은 다른 용도로는 잘 작동했는지 모르겠지만 작동하지 않았습니다 ssh-add.

이제는 작동하지만 ssh 아래에 표시되지 않는 ssh 개인 키의 사본을 gpg -Kv만들고 더 이상 개인 키의 암호를 변경하도록 허용하지 않는 것 같습니다 (로 편집 할 수 없기 때문에 --edit-key) . 기본적으로 나는 gpg-agent당신의 비밀이 복사되는 위치에 대한 낮은 가시성을 제공 하는 방식에 매우 만족 합니다. 에 gpg-agent대한 더 나은 대안 이 되길 바 랐기 때문에이 질문에 부딪 치면 내 대답을 시험해 보는 대신 ssh-agent고수하는 ssh-agent것이 좋습니다. 선호하는 주된 이유 gpg-agent는 스마트 카드 사용이 필요한 경우입니다.


이 답변은 어디에서 찾았습니까? 잘 작동합니다!
CMCDragonkai 2019

이것에 감사합니다, 나를 위해 일했습니다. 이것을 정기적으로 운영합니까? 각 부팅 / 로그인시? "적절한"수정에 대한 아이디어가 있습니까?
gf_


2

제 경우에는 문제가 사용 된 협공 프로그램이었습니다. 나는 pinentry-emacs를 사용하고있었습니다. ssh-addgpg-agent와 함께 사용될 때 트리거 되는 이중 텍스트 필드 입력 창 프롬프트를 처리하지 않는 것 같습니다 .

pinentry-emacs를 제거하고 GTK pinentry를 설치하면 여기서 문제가 해결되었습니다.


이것은 마침내 시작 tty를 업데이트하라는 많은 소스를 찾은 후에 내 문제를 해결했습니다.
William Rosenbloom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.