pass e gpg: nenhuma chave pública

13

Estou usando o passe por um longo tempo; mas depois de exportar meu armazenamento de chaves e chaves gpg para outra máquina, vejo a seguinte saída:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <[email protected]>
sub   2048R/74270D4A 2015-04-28

Minha chave foi importada e confiável, mas não utilizável:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

O que posso fazer para usar minha chave novamente?

raspado
fonte

Respostas:

12

O passe usa o gnupg2, que não compartilha seu chaveiro com o gnupg 1.x.

Importe suas chaves novamente usando gnupg2 em vez de gnupg. Se você já possui suas chaves no gnupg na máquina de destino, execute:

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

Após a importação, pode ser necessário atualizar a confiança na sua chave. Você deverá ver uma Secret key is available.mensagem se a importação foi bem-sucedida:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <[email protected]>

Agora atualize a confiança na sua chave:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save
Łukasz Lis
fonte
pass (pelo menos versão 1.6.3) gpgnão usa gpg2. E o gpg2 é apenas um redesenho. Somente com a versão 2.1 vieram algumas mudanças (combinando chaves públicas e privadas no chaveiro público.
Anthon
Isso não é verdade para a minha versão (1.6.5). No código-fonte: 10 GPG = "gpg" 11 exportar GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 que gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") Isso implica que 'pass' usa gpg, a menos que gpg2 esteja presente no mesmo sistema.
Lisukasz Lis
1
portanto, ele usa o gpg, a menos que o gpg2 esteja instalado e, para fins de aprovação, eles sejam compatíveis; caso contrário, você terá problemas horríveis se instalar o gpg2 algum tempo depois de começar a usar o passe (o que você não deveria em primeiro lugar, pois às vezes deixa dados não criptografados no diretório "armazenamento").
Anthon
Primeiro, não foi isso que você argumentou na sua primeira resposta. Segundo, você não respondeu ao meu argumento sobre eles não compartilharem um chaveiro. Terceiro, eles são compatíveis apenas porque ambos podem descriptografar mensagens se receberem uma chave secreta adequada.
Lisukasz Lis
6

Linha de saída

gpg: 2048R/FA829B53: skipped: No public key

mostra uma passinicialização incorreta . Você inicializado passcom o comando pass init 2048R/FA829B53ao passo que você deve fazê-lo com o comando pass init FA829B53. Para resolver o problema, você deve alterar o conteúdo do arquivo ~/.password-store/.gpg-idde 2048R/FA829B53para FA829B53e confirmar as alterações.

PS

Todos os conselhos de @ Łukasz Lis estão corretos e você deve concluí-los também. Em outro caso, você não poderá descriptografar o passe:

$ pass -c test

lhe dará um erro: gpg: decryption failed: No secret key

Andriy
fonte
Útil. Pode acontecer com (mis) tipo pass init SomethigElseThanFirstStore.
Nikos Alexandris
0

Notei isso ao criar uma nova loja e a inicializei com um ID de chave como "2048R / FA829B53", que eu pensava que era como era feito no passado e, olhando para um backup antigo, o arquivo .gpg_id é diferente.

No entanto, agora parece que apenas o FA829B53 é usado e, nas páginas atuais do manual, o autor usa seu endereço de email.

Eu verificaria o arquivo gpg_id, para mim em uma loja nova é apenas o FA829B53 e nenhuma outra linha

Buckshee
fonte
0

Verifique se sua chave confiável é a mesma no arquivo ~/.password-store/.gpg-id

m3asmi
fonte
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem. - Da avaliação
Kevdog777
na verdade, eu tive o mesmo problema, eu resolvo isso com isso
m3asmi 09/01