0

[WINDOWS] Como habilitar a assinatura automática de commits do Git com GnuPG (GPG)

#GitHub #Git
Junior Martins
Junior Martins

Este é um guia para habilitar commits Git com assinatura GPG no GitHub.


"O GnuPG é um programa de software de criptografia híbrida porque usa uma combinação de criptografia de chave simétrica convencional por questões de velocidade e criptografia de chave pública para facilitar a troca segura de chaves, geralmente usando a chave pública do destinatário para criptografar uma chave de sessão que é usada apenas uma vez. Este modo de operação faz parte do padrão OpenPGP e faz parte do PGP desde sua primeira versão."

Wikipédia


Primeiro passo


Instale Gpg4win (https://www.gpg4win.org/):


O Gpg4win é um pacote do GnuPG v2, que contem:

  • Kleopatra, que é um gerenciador de certificados;
  • GNU Privacy Assitant (GPA), que é uma GUI que usa GTK + GpgOL e GpgEX, que são respectivamente uma extensão para Outlook e Windows Shell


Como o foco deste tutorial não é demonstrar a utilização no Outlook, não iremos instalar o GpgOL, portanto, na janela de "Escolha de Componentes", deixe conforme a imagem abaixo:

image

Aperte o botão "seguinte" e depois selecione o diretório onde os arquivos do programa Gp4win ficarão, feito isto clique em "instalar".


Segundo passo


Após a instalação do Gp4win, abra o programa Kleopatra:

Na janela inicial vá ao menu "File > New Key Pair...", abrirá uma nova janela, nela clique em "Create a personal OpenPGP key pair".

image


Uma nova janela solicitando algumas informações será aberta, agora basta preencher os campos com os seus dados "Nome" e "Email" e marcar a caixa "Protect the generated key with a passphrase".

image


Ainda na mesma janela clique em "Advanced Settings...", na nova janela que abrir, selecione "RSA", marque "+ RSA-", e altere os valores dos selects para "4,096 bits". No campo "Valid until:" escolha uma data limite de validade da chave que será criada, no exemplo deixei a data de "03/09/2023".

image


Clique em "Ok" e depois em "Create", feito este procedimento abrirá uma nova janela para que você digite uma senha:

image


Digite uma senha com no mínimo 08 (oito) dígitos e clique em "OK". Aguarde até que o sistema gere sua "Key Pair" e cliquem em "Finish"

image


Na janela principal do Kleopatra aparecerá as informações básicas da sua nova chave, algo parecido com a imagem abaixo:

image

Clique duas vezes na linha que possui a nova chave gerada, abrirá uma nova janela e nesta clique em "Export...". Clicando em "Export..." aparecerá uma nova janela (Export - Kleopatra), selecione todo o texto e copie (Ctrl+C).

image

Após copiar, clique em "close", depois em "close" novamente.


Terceiro passo


Inserindo a chave GPG no Github


Vá ao GitHub e navegue pelo menu em "Settings > SHH and GPG keys", na janela que abrir procure pelo botão "New GPG Key"

image


Clicando em "New GPG Key", abrirá uma nova janelacom um campo de títúlo "GPG keys/ Add new", neste campo cole todo o texto que você copiou no "export" do Kleopatra, deixando mais ou menos assim:

image


Colado o texto, cliquem em "Add GPG Key".


Após clicar no botão "Add GPG Key", você será redirecionado para a página "SSH and GPG keys", que agora conterá as informações básicas da sua nova chave GPG criada, como na imagem abaixo:

image

ATENÇÃO: Se você colocar o seu e-mail real nas configurações, a mensagem de "Unverified" não aparecerá


Quarto passo


Configurando o Git para realizar commits verificados

Abra o terminal e digite o seguinte comando:

git config --global commit.gpgsign true


Volte na página "SSH an GPG keys" do GitHub e copie o valor de "Key ID", o que está em azul (O valor da sua Key ID será diferente do da imagem) na imagem abaixo :

image


Copiado o valor, volte ao terminal e digite o seguinte comando:

git config --global user.signingkey MEU_KEY_ID


Substitua MEU_KEY_ID pelo valor copiado na página "SSH an GPG keys"

Feito, agora digite o comando:

git config --global gpg.program 'Dico:/caminho/do/GnuPG/bin/gpg.exe`


Use o caminho completo utilizando "/" e não ""


Último passo


Se deu tudo certo a partir de agora você será capaz de realizar commits verificados para sua conta no GitHub, para isso, faça um commit utilizando a flag "-S", assim:

git commit -S -m 'Commit verificado'


Ao clicar em "enter" abrirá uma nova janela solicitando a senha que foi criada no momento da geração da chave no Kleopatra. Digite-a e tecle "enter", que o commit será realizado.

Para finalizar, depois do commit, dê um "push" e seja feliz :)

git push


Seus commits aparecerão no histórico com uma tag "verified" ao lado:

image


Você pode ler este artigo no meu GitHub:

https://gist.github.com/juniormartinxo/628646ad63c05fd9458130cf2c575786

0
2

Comentários (1)

1
Wellington Nascimento

Wellington Nascimento

05/10/2021 18:28

Parabéns, gostei vou fazer esta bem instruído entente tudo...

None

Brasil