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 (2)
muito bom! Imagino seja possível adicionar isso por repositório, né? em vez de deixar global
da sim, só adicionar sem o --global