Eu estou tentando fazer com que o (2) caso de uso mais simples funcione para o git-remote-gcrypt, ou seja, um remoto compartilhado em armazenamento não confiável, que possui acesso de leitura / gravação de duas máquinas pessoais (osx_box, ubuntu_box). Eu não estou familiarizado com o uso diário do GPG (embora compreenda os conceitos em termos abstratas), e estou relativamente familiarizado com o uso do CLI.
A etapa abaixo ocorreu em máquinas sem outras chaves GPG disponíveis, portanto, não é uma identidade / erro de digitação / erro intelectual.
Eu criei uma chave GPG com
gpg --full-generate-key
em cada máquina
tenha cuidado ao usar gpg2
no ubuntu_box, pois não tenho certeza sobre a interoperabilidade de repos / keys em grandes versões, e a gpg
versão do ubuntu é 1.6.
Do ubuntu_box, eu exportei a chave com:
gpg2 --armor --export BF5C7A3B72342BD6ADD6AE65864838DEFB0581D0 > 81d0.asc.
Isso foi então copiado para osx_box e importado:
gpg --import 81d0.asc.
gpg -k
em osx_box, em seguida, mostra essa chave a ser importada, com uma assinatura de chave correspondente (pública?) como em ubuntu_box. Woohoo!
Eu então criei um repositório local em osx_box em ~ / testgcrypt / repo_A, adicionei vários arquivos, confirmei e executei:
git remote add cryptremote
gcrypt::rsync://ubuntu_box:/home/my_username/testgcrypt/test_repo_A
git config remote.cryptremote.gcrypt-participants '842E65FCB5AA1C30AEDACFC58A7695DDF9AFA5CC BF5C7A3B72342BD6ADD6AE65864838DEFB0581D0'
em que 842E65FCB5AA1C30AEDACFC58A7695DDF9AFA5CC
é a impressão digital da chave GPG da osx_box e BF5C7A3B72342BD6ADD6AE65864838DEFB0581D0
é a impressão digital da chave GPG do ubuntu_box.
Eu posso empurrar o commit de osx_box para este remoto como normal. Eu também posso reclone em outro diretório em osx_box de gcrypt :: rsync: // ubuntu_box: / home / meu_usuário / testgcrypt / test_repo_A. Faz sentido até agora.
No entanto, se em ubuntu_box eu tentar clonar gcrypt :: rsync: // ubuntu_box: / home / meu_usuário / testgcrypt / test_repo_A em um repositório (com check-out), recebo gpg circulando por todas as chaves disponíveis (somente 1 !), seguido por:
gpg: decodificação falhada: chave secreta não disponível gcrypt: Falha ao descriptografar manifesto!
Agora o que dá? O (bastante escasso) gcrypt README apenas diz para adicionar a assinatura (separada por espaço) dos colaboradores [i.e. ubuntu_box] GPG no arquivo .git / config do repo inicial em osx_box. Isso deve ser colocado sob o controle relevante, que é o seguinte:
git config remote.cryptremote.gcrypt-participants '842E65FCB5AA1C30AEDACFC58A7695DDF9AFA5CC BF5C7A3B72342BD6ADD6AE65864838DEFB0581D0'
fez.
AFAIK, git-remote-gcrypt no osx_box deve então ter visto a impressão digital do ubuntu_box, pegar a chave pública (para assinar? crypting? exportar o mesmo arquivo pubkey) do ubuntu_box, fazer alguma mágica e empurrar o texto cifrado para ubuntu_box: / home / meu_usuário / testgcrypt / test_repo_A. Desde que o gcrypt criptografou os dados com o conhecimento hand-wavy da chave do ubuntu_box, minha suposição é que ele deveria ter criptografado os dados de uma maneira decodificável pelo ubuntu_box. Mas sem sucesso ...
EDIT: Parece funcionar quando eu criar o repositório no ubuntu_box e cloná-lo para o osx_box. Mas quando eu cometo um arquivo adicional e empurro do osx_box, então o ubuntu_box não pode puxar os commits, novamente com o erro 'secret key not available' ...
Tags gnupg git encryption