Como conseguimos garantir que somos nós mesmos que fazemos os commits?!
Qualquer pessoa pode alterar a configuração do git, colocar seu e-mail e dizer que foi você que subiu aquele commit.
Para assinar commits, iremos ver o GNUPG.
Nesse link: gnupg vemos que GNUPG é The GNU Privacy Guard.
É uma implementação completa e gratuita do padrão OpenPGP conforme definido pelo RFC4880 (também conhecido como PGP. O GnuPG permite criptografar e assinar dados e comunicações; possui um sistema de gerenciamento de chaves versátil, juntamente com módulos de acesso para todos os tipos de diretórios de chaves públicas. GnuPG, também conhecido como GPG, é uma ferramenta de linha de comando com recursos para facilitar a integração com outros aplicativos. O GnuPG também oferece suporte para S/MIME e Secure Shell (ssh).
Instalação no linux
sudo apt update
sudo apt install gnupg
Iremos verificar se existe alguma chave criada no nosso computador.
gpg --list-secret-key --keyid-form LONG
Vamos criar a nossa chave
gpg --full-generate-key
- Selecionamos (1) para usarmos RSA
- 4096 bits long
- y
- quanto tempo quer que seja valido a chave: 1y
- y
- Real name: seu nome Email address: seuemail@mail.com
- selecionar O para salvar e sair.
- criar uma senha no seu computador para ter acesso a chave.
Iremos verificar a chave criada.
gpg --list-secret-key --keyid-form LONG
Com esse retorno:
sec rsa4096/1F64329A378F71EE 2022-06-17 [SC] [expires: 2023-06-17]
8EF31698FB71ACAC945C4A3E1F64329A378F71EE
uid [ultimate] William Koller <williamkoller404@gmail.com>
ssb rsa4096/43D2BB51F0668C4B 2022-06-17 [E] [expires: 2023-06-17]
Iremos copiar o sec => 1F64329A378F71EE
que é o id para pegarmos a chave publica e adicionar no github.
gpg --armor --export 1F64329A378F71EE
Pegamos a chave e adicionamos no github em GPG Keys
Agora iremos configurar o git para assinar commit e tags
git config --global commit.gpgsign true
git config --global tag.gpgSign true
Criei esse projeto no github para exemplificar
Precisamos adicionar a nossa chave no git
git config --global user.signingkey 1F64329A378F71EE
Quando formos commitar irá aparece essa tela para confirmamos a senha
Agora iremos verificar se o git esta vinculado ao nosso commit
git log --show-signature -1
Vamos no repositorio verificar se o usuário está verificado, clicamos hash do commit.
Ultimo passo
sudo nano ~/.gnupg/gpg.conf
E adicionar use-agent
e salvar e em seguida roda esse comandogpgconf --launch gpg-agent
Pronto agora temos a verificação de assinatura de commits.
Espero ter ajudado.
Top comments (0)