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
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
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.