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 é umaGUI
que usaGTK + GpgOL
eGpgEX
, que são respectivamente uma extensão paraOutlook
eWindows 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
Unverified
ao 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 true
Volte 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_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 '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 push
Seus 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