DEV Community

Daniel Rodrigues for PHP Brasil

Posted on

15 5

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)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay