DEV Community

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

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!

Top comments (0)