DEV Community

Daniel Rodrigues for PHP Brasil

Posted on

Assinando commits com uma chave GPG

O Git tem a opção de assinar e verificar seus commits utilizando-se de chave GPG, para isso basta seguir os passos a seguir

Passo 1 - Gere uma nova chave GPG

1 - Digite o comando para gerar a chave GPG;

gpg --full-generate-key
Enter fullscreen mode Exit fullscreen mode

2 - Selecione a opção: (1) RSA e RSA (padrão);

gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Por favor selecione o tipo de chave desejado:
   (1) RSA e RSA (padrão)
   (2) DSA e Elgamal
   (3) DSA (apenas assinatura)
   (4) RSA (apenas assinar)
Sua opção? 
Enter fullscreen mode Exit fullscreen mode

3 - Digite o maior comprimento(4096), para sua nova chave GPG;

RSA chaves podem ter o seu comprimento entre 1024 e 4096 bits.
Que tamanho de chave você quer? (3072) 4096
Enter fullscreen mode Exit fullscreen mode

4 - Decida qual o prazo de expiração para sua chave;

Por favor especifique por quanto tempo a chave deve ser válida.
         0 = chave não expira
      <n>  = chave expira em n dias
      <n>w = chave expira em n semanas
      <n>m = chave expira em n meses
      <n>y = chave expira em n anos
A chave é valida por? (0) 
Enter fullscreen mode Exit fullscreen mode

5 - Confirme o tempo de expiração da chave;

A chave não expira nunca
Está correto (s/N)?
Enter fullscreen mode Exit fullscreen mode

6 - Digite seu nome completo;

GnuPG precisa construir uma ID de usuário para identificar sua chave.

Nome completo: 
Enter fullscreen mode Exit fullscreen mode

7 - Digite seu email;

Endereço de correio eletrônico:
Enter fullscreen mode Exit fullscreen mode

8 - Crie um comentário para sua chave caso seja necessário;

Comentário: 
Enter fullscreen mode Exit fullscreen mode

9 - Confirme as informações que você acabou de preencher, basta digitar o para OK;

Você selecionou este identificador de usuário:
    "Joao Ninguem <joao@ninguem.nada>"

Muda (N)ome, (C)omentário, (E)ndereço ou (O)k/(S)air?
Enter fullscreen mode Exit fullscreen mode

10 - Digite uma senha segura para sua chave GPG e confirme a senha;

11 - Aguarde o processo de criação de sua chave finalizar;

Precisamos gerar muitos bytes aleatórios. É uma boa idéia realizar outra
atividade (digitar no teclado, mover o mouse, usar os discos) durante a
geração dos números primos; isso dá ao gerador de números aleatórios
uma chance melhor de conseguir entropia suficiente.
gpg: chave FD2B172CC4C9F3E4 marcada como plenamente confiável
gpg: revocation certificate stored as '/home/geekcom/.gnupg/openpgp-revocs.d/92518C10D23E004325112DB9FD2B172CC4C9F3E4.rev'
chaves pública e privada criadas e assinadas.

pub   rsa4096 2020-04-28 [SC]
      92518C10D23E004325112DB9FD2B172CC4C9F3E4
uid                      Joao Ninguem <joao@ninguem.nada>
sub   rsa4096 2020-04-28 [E]
Enter fullscreen mode Exit fullscreen mode

Neste momento sua chave GPG foi gerado com sucesso, agora é necessário adiciona-la ao GitHub.

Passo 2 - Adicionando uma chave GPG ao GitHub

1 - Use o seguinte comando para listar a chave GPG privada que você acabou de criar:

gpg --list-secret-keys --keyid-format LONG joao@ninguem.nada
Enter fullscreen mode Exit fullscreen mode

Substitua joao@ninguem.nada pelo e-mail que você usou para criar a chave.

2 - Copie o ID da chave GPG que começa com sec. No exemplo a seguir, é FD2B172CC4C9F3E4:

sec   rsa4096/FD2B172CC4C9F3E4 2020-04-28 [SC]
      92518C10D23E004325112DB9FD2B172CC4C9F3E4
uid                 [final] Joao Ninguem <joao@ninguem.nada>
ssb   rsa4096/AB9EC40EA9DE16E3 2020-04-28 [E]
Enter fullscreen mode Exit fullscreen mode

3 - Exporte a chave pública desse ID (substitua pelo seu ID da chave da etapa anterior):

gpg --armor --export FD2B172CC4C9F3E4
Enter fullscreen mode Exit fullscreen mode

4 - Por fim, copie a chave pública e adicione-a nas configurações do seu perfil do GitHub em https://github.com/settings/keys

Passo 3 - Associando sua chave GPG ao Git

1 - Depois de criar sua chave GPG e adicioná-la à sua conta GitLab, é hora de informar ao Git qual chave usar.

gpg --list-secret-keys --keyid-format LONG joao@ninguem.nada
Enter fullscreen mode Exit fullscreen mode

Substitua joao@ninguem.nada pelo seu email.

2 - Copie o ID da chave GPG que começa com sec. No exemplo a seguir, é FD2B172CC4C9F3E4:

sec   rsa4096/FD2B172CC4C9F3E4 2020-04-28 [SC]
      92518C10D23E004325112DB9FD2B172CC4C9F3E4
uid                 [final] Joao Ninguem <joao@ninguem.nada>
ssb   rsa4096/AB9EC40EA9DE16E3 2020-04-28 [E]
Enter fullscreen mode Exit fullscreen mode

3 - Diga ao Git que deseja usar essa chave para assinar os seus commits:

git config --global user.signingkey FD2B172CC4C9F3E4
Enter fullscreen mode Exit fullscreen mode

Substitua FD2B172CC4C9F3E4 pelo ID da sua chave GPG.

Passo 4 - Assinando commits com sua chave GPG

Depois de criar sua chave GPG e adicioná-la à sua conta, você pode começar a assinar seus commits:

1 - Continua como você costumava fazer, a única diferença é a adição da flag -S:

git commit -S -m "mensagem do meu commit"
Enter fullscreen mode Exit fullscreen mode

2 - Digite a senha da sua chave GPG quando solicitada.

A partir de agora seus commits podem assinados com sua chave GPG sempre que desejar, no GitHub você poderá ver que seus commits estão assinados.

Top comments (0)