Estou tentando copiar minha chave gpg de uma máquina para outra.

Sim:

gpg --export ${ID} > public.key gpg --export-secret-key ${ID} > private.key 

Mova os arquivos para a nova máquina e, em seguida:

gpg --import public.key gpg: nyckel [ID]: public key [Name, e-mail] was imported gpg: Total number of treated keys: 1 gpg: imported: 1 (RSA: 1) gpg --allow-secret-key-import private.key sec [?]/[ID] [Creation date] [Name, e-mail] ssb [?]/[SUB-ID] [Creation date] 

Tudo parece bom para mim, mas então:

$ gpg -d [file].gpg gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date] [Name, e-mail] gpg: decryption failed: secret key not accessible 

Portanto, a mensagem de erro diz que o arquivo foi criptografado com [SUB-ID], que a importação da chave secreta parece indicar que foi importado. [SUB-ID] em ambas as mensagens é o mesmo).

Então, estou claramente fazendo algo errado, mas não sei o quê.

Resposta

Você precisa adicionar --import à linha de comando para importar a chave privada. Você não precisa usar o --allow-secret-key-import sinalizador. De acordo com a página de manual:” Esta é uma opção obsoleta e não é usada em nenhum lugar. “

gpg --import private.key 

Comentários

  • Qualquer chance de você ' d também saber por que gpg2 -e -r [ID] diz " Não há garantia de que esta chave pertence ao usuário nomeado "? Eu gostaria de tê-lo incluído na pergunta original, mas só percebi mais tarde.
  • O GnuPG mantém um banco de dados confiável que usa para decidir o quanto confiar em quais chaves. Por exemplo, confie mais em suas próprias chaves, as que não são ' t direta ou indiretamente assinadas por quaisquer chaves confiáveis. Depois de ' ter acabado de importar para um banco de dados vazio, provavelmente nenhuma chave é confiável. Esse banco de dados confiável é separado do banco de dados ou das próprias chaves, portanto, importar chaves não os torna confiáveis, a menos que sejam assinados por alguma chave já confiável. Você tem que informar ao GnuPG quais chaves deseja confiar separadamente.
  • @Celeda, obrigado, com –edit-key ee o comando trust consegui obter a chave confiável. Já que minha pergunta original era como copiar a chave de uma máquina para outra, acho que seria apropriado acrescentar algo sobre isso à sua resposta. Eu ' prefiro não editar sua resposta eu mesmo, e você parece saber muito mais do que eu sobre isso.
  • Eu não ' t sinto que entendo o trustdb bem o suficiente para falar sobre ele em minha resposta. Eu ' fico feliz que você tenha conseguido resolver isso usando as dicas vagas que dei em meu comentário.
  • Ok, eu ' renomeamos a pergunta original para que se encaixe mais especificamente na resposta. Dessa forma, posso fazer uma pergunta separada ao trustdb. Obrigado pela ajuda. 🙂

Resposta

Acima é apenas uma resposta parcial. A resposta completa é:

gpg --import private.key 
  • Dado o KEYID (por exemplo, FA0339620046E260) da saída :

    gpg --edit-key {KEY} trust quit # enter 5<RETURN> (I trust ultimately) # enter y<RETURN> (Really set this key to ultimate trust - Yes) 
  • OU use o comando automatizado abaixo:

    expect -c "spawn gpg --edit-key {KEY} trust quit; send \"5\ry\r\"; expect eof" 

Finalmente, verifique se a chave agora é confiável com [ultimate] em vez de [unknown]

gpg --list-keys 

Comentários

  • Esta deve ser a resposta aceita. Muito mais completo.
  • O que esses comandos extras fazem?
  • @Steiny Torna a chave confiável com [ultimate] em vez de [desconhecido]. gpgtools.tenderapp.com/kb/faq/…

Resposta

Eu estava importando de um backup que tinha uma versão antiga do gpg. Como o computador antigo não estava disponível, apenas o backup, não pude exportá-lo primeiro. Isso é o que funcionou para mim.

 gpg --import old_home_dir/.gnupg/pubring.gpg gpg --import old_home_dir/.gnupg/secring.gpg  

Se você quiser ser capaz de importe as chaves secretas sem inserir a senha imediatamente, use a opção --batch.

Para verificar as chaves públicas:

 gpg --list-keys  

Para verificar as chaves secretas:

 gpg --list-secret-keys  

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *