Passo a passo: Como assinar commits com GPG no Git

A assinatura GPG no Git permite validar a identidade do autor de um commit, garantindo a autenticidade das mudanças no repositório.

Como assinar commits com GPG no Git?

A assinatura de commits com GPG (GNU Privacy Guard) no Git adiciona um nível extra de segurança, permitindo que outros desenvolvedores verifiquem a autenticidade do autor das mudanças.

1. Instalando o GPG

Antes de começar, instale o GPG no seu sistema:

  • Linux:
sudo apt install gnupg
  • MacOS (via Homebrew):
brew install gnupg
  • Windows (via Gpg4win):

Baixe e instale em https://www.gpg4win.org/

2. Criando uma chave GPG

Para gerar uma nova chave GPG, execute:

gpg --full-generate-key

Escolha:

  • Tipo de chave: RSA and RSA (default)
  • Tamanho da chave: 4096 bits (para maior segurança)
  • Validade: Recomendado sem expiração
  • Nome e e-mail: Use o mesmo e-mail cadastrado no GitHub/GitLab

Depois de criar a chave, liste seu ID:

gpg --list-secret-keys --keyid-format=long

Isso exibirá algo como:

sec   rsa4096/ABC123DEF456 2024-03-03 [SC]

O ID da chave é ABC123DEF456 (substitua pelo seu).

3. Configurando o Git para assinar commits

Agora, configure o Git para usar sua chave GPG:

git config --global user.signingkey ABC123DEF456

Ative a assinatura automática de commits:

git config --global commit.gpgsign true

4. Assinando um commit manualmente

Caso queira assinar um commit individualmente, utilize:

git commit -S -m "Mensagem do commit"

5. Verificando um commit assinado

Para verificar se um commit está assinado corretamente:

git log --show-signature

Assinar commits com GPG no Git é uma prática importante para garantir a autenticidade do código. Grandes plataformas, como GitHub e GitLab, permitem validar commits assinados, adicionando um selo de "Verificado" para confirmar que a alteração foi feita por um autor legítimo.

Isso é especialmente útil para times que trabalham com código-fonte aberto ou para desenvolvedores que precisam garantir que ninguém alterou suas contribuições. Além disso, a adoção do GPG ajuda a prevenir ataques de falsificação de commits, protegendo o histórico do projeto.

Algumas aplicações:

  • Garantir que os commits são feitos por usuários autenticados
  • Evitar falsificação de commits em repositórios públicos
  • Melhorar a segurança e confiabilidade do histórico do Git
  • Adicionar um selo de "Verificado" ao commit em plataformas como GitHub
  • Assegurar que o código não foi modificado por terceiros sem autorização

Dicas para quem está começando

  • Use o mesmo e-mail do GitHub ao criar a chave GPG para garantir a verificação correta.
  • Se esquecer de assinar um commit, reescreva-o com 'git commit --amend -S'.
  • Adicione sua chave pública ao GitHub em 'Settings > SSH and GPG keys'.
  • Se um commit não estiver verificando corretamente, use 'gpg --list-secret-keys' para conferir se a chave está configurada corretamente.
  • Evite compartilhar sua chave privada para manter a segurança do seu GPG.

Contribuições de Ricardo Moura

Compartilhe este tutorial: Como assinar commits com GPG no Git

Compartilhe este tutorial

Continue aprendendo:

Como configurar hooks no Git para automatizar tarefas

Hooks no Git permitem automatizar tarefas como validação de código, execução de testes e integração contínua durante operações do Git.

Tutorial anterior

Como configurar um servidor Git próprio

Configurar um servidor Git próprio permite armazenar repositórios privados, garantir maior controle sobre o código e evitar dependências de plataformas externas.

Próximo tutorial