Disponível em: https://dev.to/juniormartinxo/como-habilitar-a-assinatura-automatica-de-commits-do-git-com-gnupg-gpg-no-windows-26o9
Este é um guia para habilitar git commits 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."
Gpg4win pode ser baixado em www.gpg4win.org{:target="_blank"}
O Gpg4win é um pacote do GnuPG v2, que contem:
Kleopatra, que é um gerenciador de certificados;GNU Privacy Assitant (GPA), que é umaGUIque usaGTK + GpgOLeGpgEX, que são respectivamente uma extensão paraOutlookeWindows 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:
Aperte o botão seguinte e depois selecione o diretório onde os arquivos do programa Gp4win ficarão (você irá precisar desta informação mais pra frente), feito isto clique em instalar.
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 no botão Create a personal OpenPGP key pair.
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.
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 para a validade da chave que será criada, no exemplo deixei a data de 03/09/2023.
Clique em Ok e depois em Create, feito este procedimento abrirá uma nova janela para que você digite uma senha:
A senha deve ter no mínimo
08 (oito) dígitos
Após digitar a senha clique em OK e aguarde até que o sistema gere sua Key Pair.
Realizado o procedimento anterior e dando tudo certo, abrirá uma nova janela com a mensagem "Key Pair Succesfully Created" contendo algumas informações sobre a nova chave criada, conforme a imagem abaixo:
Gerada a Kei Pair, clique em Finish.
Se tudo deu certo até aqui você perceberá que na janela principal do Kleopatra vai estar aparecendo as informações básicas da sua nova chave, algo parecido com a imagem abaixo:
Clique duas vezes na linha que possui a nova chave gerada para abrir a janela Export, que permitirá que exportemos a chave criada. Com a janela Export aberta, clique em Export.... Abrirá uma nova janela Export - Kleopatra, selecione todo o texto e copie Ctrl+C.
Após copiar, clique em close e depois em close novamente.
De posse da chave copiada no "item 3" deste tutorial, vá ao GitHub e navegue pelo menu em Settings > SHH and GPG keys e na janela que abrir procure pelo botão New GPG Key
Clicando em New GPG Key, abrirá uma nova janela com o campo GPG keys/ Add new, neste campo cole todo o texto que você copiou no "item 3" deste tutorial, deixando mais ou menos assim:
Colado o texto, cliquem em 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:
💡Atenção
Na imagem acima aparace a mensagem
Unverifiedao lado do e-mail inserido. Isto é um alerta indicando que o e-mail não está vinculado à sua conta do GitHub, portanto, se você inserir o e-mail correto vinculado à sua conta, a mensagem de não aparecerá
Abra o terminal e digite o comando:
git config --global commit.gpgsign trueVolte na página SSH an GPG keys do GitHub e copie o valor de Key ID, o que está em azul na imagem abaixo:
O valor da sua Key ID será diferente do da imagem
Copiado o valor, volte ao terminal e digite o seguinte comando:
git config --global user.signingkey MEU_KEY_IDSubstitua MEU_KEY_ID pelo valor copiado na página "SSH an GPG keys"
Feito, agora digite o comando:
git config --global gpg.program 'Disco:/caminho/do/GnuPG/bin/gpg.exe`git config --global gpg.program 'C:/programs/GnuPG/bin/gpg.exe`💡 Atenção Use o caminho completo utilizando
/e não\
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 senha correta e tecle enter, que o commit será realizado.
Para finalizar, depois do commit, dê um push e seja feliz 😁
git pushSeus commits aparecerão no histórico com uma tag verified ao lado, conforme a imagem abaixo:













Muito bom a explicação, uma coisa que me perdi um pouco aqui e poderia arrumar ai, seria a parte de rodar este comando:
`git config --global gpg.program 'Dico:/caminho/do/GnuPG/bin/gpg.exe``
Pode informar que o 'gpg.exe' pode estar no diretório bin associado ao Path das variaveis globais do Windows como foi no meu caso aqui.
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin