DEV Community

Cover image for Como criar uma chave GPG e contribuir de maneira segura para projetos open-source
6

Como criar uma chave GPG e contribuir de maneira segura para projetos open-source

Acredito que muitos de nós têm vontade de participar de projetos open-source. Porém, para contribuir para projetos open-source de maneira segura, é essencial seguir boas práticas, especialmente em repositórios que exigem que os commits sejam verificados. Isso garante a autenticidade e integridade do código enviado. Veja um exemplo de commit verificado:

Image description

Para que seus commits sejam assinados e verificados, você precisará usar uma chave GPG.

O que é uma chave GPG?

Uma chave GPG (GNU Privacy Guard) é uma ferramenta de criptografia baseada no padrão OpenPGP, usada para:

  • Criptografar dados para protegê-los.
  • Assinar digitalmente mensagens ou arquivos, garantindo sua autenticidade.
  • Autenticar identidades em comunicações seguras.

No contexto de projetos open-source, a chave GPG é usada para assinar commits e tags, permitindo que outras pessoas confirmem que você é realmente o autor.

Passo 1: Instalar o utilitário GPG

Antes de criar sua chave GPG, você precisa instalar uma ferramenta para gerenciá-la. A ferramenta mais comum é o GnuPG. Você pode baixá-la para o seu sistema operacional no site oficial do GnuPG.

Após instalar, verifique a instalação com o comando:

gpg --version
Enter fullscreen mode Exit fullscreen mode

O resultado será semelhante ao seguinte:

Saída do comando gpg --version

Isso confirma que o GPG foi instalado corretamente.

Passo 2: Gerar uma nova chave GPG

Agora que você instalou o GPG, pode criar uma nova chave. Use o comando abaixo para iniciar o processo de geração:

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

Durante o processo, você será solicitado a:

  1. Escolher o tipo de chave (recomenda-se a opção padrão: RSA and RSA).
  2. Definir o tamanho da chave (4096 bits é o ideal para maior segurança).
  3. Configurar a validade da chave (opcional, mas "0" define que a chave não expira).
  4. Inserir seu nome, e-mail e um comentário (opcional). Vale lembrar que o nome e o e-mail devem ser os mesmos retornados pelas opções git config --global user.email e git config --global user.name.
  5. Criar uma senha segura para proteger sua chave privada.

Você verá uma tela parecida com esta, solicitando uma senha para a sua chave:

Image description

Ao final, sua chave será gerada e estará pronta para uso. Para confirmar que a chave foi criada, use o comando abaixo:

gpg --list-secret-keys --keyid-format=long
Enter fullscreen mode Exit fullscreen mode

Então você verá sua chave criada - algo parecido com isso:

Image description

Anote o ID da chave (após sec rsa4096/). Note que o ID da chave exibida no exemplo acima é A7716F4C1DB8579B.

Passo 3: Exportar sua chave pública

Para que outras pessoas possam verificar seus commits, você precisa compartilhar sua chave pública. Para exportá-la, use:

gpg --armor --export ID DA SUA CHAVE
Enter fullscreen mode Exit fullscreen mode

Você pode enviar o conteúdo da sua chave para quem precisa verificar sua identidade, ou publique-o em um servidor de chaves públicas como o keyserver.ubuntu.com.

Mas o mais comum é enviar o conteúdo de sua chave para o GitHub. Para fazer isso, no seu perfil de usuário, entre em settings. Dentro de settings, localize a opção abaixo:

Image description

Ao clicar, você verá uma tela parecida com esta:

Image description

Dê um título para a sua chave. Depois, copie o conteúdo da sua chave GPG, começando com -----BEGIN PGP PUBLIC KEY BLOCK----- e terminando com -----END PGP PUBLIC KEY BLOCK-----.

Passo 4: Configurar o GPG no Git

Para usar sua chave GPG no Git, primeiro descubra o ID da sua chave com o comando:

gpg --list-secret-keys --keyid-format=long
Enter fullscreen mode Exit fullscreen mode

Anote o ID da chave (após sec rsa4096/). Em seguida, configure o Git para usar essa chave:

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

Ative a assinatura automática de commits com:

git config --global commit.gpgsign true
Enter fullscreen mode Exit fullscreen mode

Passo 5: Assinar seus commits

Agora, ao fazer um commit, ele será automaticamente assinado. Você pode verificar isso com:

git log --show-signature
Enter fullscreen mode Exit fullscreen mode

Se o commit estiver assinado corretamente, verá algo como "Good signature" no log. Você poderá ver também que no repositório, seu commit aparecerá da seguinte forma:

Image description

Com isso, seus commits estão devidamente assinados e verificados, garantindo segurança e confiabilidade em suas contribuições open-source.

Forte abraço!

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

Heroku

This site is powered by Heroku

Heroku was created by developers, for developers. Get started today and find out why Heroku has been the platform of choice for brands like DEV for over a decade.

Sign Up

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay