git-remote-gcrypt para remoto compartilhado entre dois hosts, erros de 'chave secreta não disponível'

0

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

    
por Congee 19.09.2018 / 02:10

0 respostas