“패스”비밀번호 관리자에 비밀번호를 추가하려고합니다. 그러나 "공개 키 없음"GPG 오류로 인해 시도가 실패합니다. 왜?


27

Pass : 표준 Unix 암호 관리자 를 설치하려고 하지만 응용 프로그램에 암호를 추가하려고하면 이러한 오류가 발생합니다.

gpg: Kelly's Passwords: skipped: No public key
gpg: [stdin]: encryption failed: No public key

GPG 공개 키?

명령을 입력 gpg --list-keys하면 다음과 같은 결과가 나타납니다.

/home/khays/.gnupg/pubring.gpg
------------------------------
pub   2048R/64290B2D 2012-11-05
uid                  Kelly Hays <hays.kelly@gmail.com>
sub   2048R/0DF57DA8 2012-11-05

나는 이것을 해결하는 방법을 조금 잃어 버렸다. 어떤 아이디어?

답변:


28

비밀번호 저장소는 어떻게 작성 했습니까? pass init "Kelly's Passwords"? 그렇다면 이것이 잘못된 것 pass init 64290B2D입니다.

그렇다면 다음 pass insert foo과 같이 실패합니다.

gpg: fooo: skipped: public key not found
gpg: [stdin]: encryption failed: public key not found

당신이 먼저 자신의 키를 신뢰해야한다 ( gpg --edit-key 64290B2D, trust, 5, save).


한 단계 뒤처진 사람들을 위해 추가하겠습니다. 먼저 gpg 키를 초기화해야합니다.gpg --generate-key
ItayB

2
@ItayB gpg 키를 생성하는 명령은 실제로 gpg --gen-key(gpg
1.4.20

어떤 경우에는 gpgXubuntu에서 (버전 1.4.20)을 사용 하면 항상 실패 (을 통해 비밀번호 생성 pass)로 이어집니다. gpg2(버전 2.1.11)을 사용하면 모든 것이 잘 작동했습니다.
Nikos Alexandris

64290B2D와 같은 '키'는 키를 식별하기 위해 사용한 모든 것입니다. 필자의 경우 이메일 주소는 uid로 표시됩니다gpg -k
John Mee

5

같은 표시로 누군가이 문제를 우연히 발견하면 솔루션이 약간 다를 수 있습니다. 귀하가 pass사용하는 gpg2대신 gpg, 당신은 당신의 키 (또는 그 반대) 생성 / 관리하는 데 사용했을 수 있습니다. 확인 :

bash -x $(which pass) insert foo

2
WTF !? gpg와 gpg2가 모두 새로운 시스템에 설치되는 이유는 무엇입니까? 왜 패스 맨 페이지 나 웹 사이트에서! @ # & % damned gpg 키를 만드는 방법을 언급하지 않겠습니까 ???
Tobia

2
GPG 1을 사용하여 이미를 생성 한 경우 다음과 같이 GPG 2로 가져올 수 있습니다.gpg2 --import ~/.gnupg/secring.gpg
maxschlepzig

2

디버그에서 bash를 실행하는 것이 도움이되는 동안 동일한 오류가 발생했습니다. (bash -x), pass가 .password-store / .gpg-id에 존재하지 않는 gpg-key를 나열한다는 것을 깨달았습니다.


1

같은 오류가 발생했지만 확인 gpg2 --list-keys하면 나에게

pub   rsa4096/0x12345678 2016-11-22 [SC] [expired: 2018-11-26]

그래서 내 해결책은

gpg --edit-key 0x12345678
gpg> expire
...
gpg> save

https://unix.stackexchange.com/a/177310/14315를 참조 하십시오.

하위 키를 갱신해야하는 경우 다음을 사용하십시오.

> e.g. if the subkey whose validity you want to extend is the first listed
> subkey, or if it is the only listed subkey, then the  command would be
> Command> key 1
> this will put a * after the word sub, indicating that this particular
> subkey has been selected. then
> Command> expire
> and follow the prompts.

출처 https://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.