<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Onofre Antonio Juvencio Junior</title>
    <description>The latest articles on DEV Community by Onofre Antonio Juvencio Junior (@onofrej).</description>
    <link>https://dev.to/onofrej</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F193144%2F6b130ee6-c1a0-4215-8e50-927facb285db.jpg</url>
      <title>DEV Community: Onofre Antonio Juvencio Junior</title>
      <link>https://dev.to/onofrej</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/onofrej"/>
    <language>en</language>
    <item>
      <title>Como criar uma chave GPG e contribuir de maneira segura para projetos open-source</title>
      <dc:creator>Onofre Antonio Juvencio Junior</dc:creator>
      <pubDate>Tue, 28 Jan 2025 12:08:56 +0000</pubDate>
      <link>https://dev.to/onofrej/como-criar-uma-chave-gpg-e-contribuir-de-maneira-segura-para-projetos-open-source-49n9</link>
      <guid>https://dev.to/onofrej/como-criar-uma-chave-gpg-e-contribuir-de-maneira-segura-para-projetos-open-source-49n9</guid>
      <description>&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke9fm4eecqbm0s1tsm7c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke9fm4eecqbm0s1tsm7c.png" alt="Image description" width="698" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para que seus commits sejam assinados e verificados, você precisará usar uma chave GPG.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é uma chave GPG?
&lt;/h2&gt;

&lt;p&gt;Uma chave GPG (GNU Privacy Guard) é uma ferramenta de criptografia baseada no padrão OpenPGP, usada para:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Criptografar dados&lt;/strong&gt; para protegê-los.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Assinar digitalmente&lt;/strong&gt; mensagens ou arquivos, garantindo sua autenticidade.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autenticar identidades&lt;/strong&gt; em comunicações seguras.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 1: Instalar o utilitário GPG
&lt;/h2&gt;

&lt;p&gt;Antes de criar sua chave GPG, você precisa instalar uma ferramenta para gerenciá-la. A ferramenta mais comum é o &lt;strong&gt;GnuPG&lt;/strong&gt;. Você pode baixá-la para o seu sistema operacional no &lt;a href="https://www.gnupg.org/download/" rel="noopener noreferrer"&gt;site oficial do GnuPG&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Após instalar, verifique a instalação com o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gpg &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O resultado será semelhante ao seguinte:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ku5mt2k1rqcs8c93itx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6ku5mt2k1rqcs8c93itx.png" alt="Saída do comando gpg --version" width="666" height="283"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Isso confirma que o GPG foi instalado corretamente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 2: Gerar uma nova chave GPG
&lt;/h2&gt;

&lt;p&gt;Agora que você instalou o GPG, pode criar uma nova chave. Use o comando abaixo para iniciar o processo de geração:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gpg &lt;span class="nt"&gt;--full-generate-key&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Durante o processo, você será solicitado a:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Escolher o tipo de chave (recomenda-se a opção padrão: RSA and RSA).&lt;/li&gt;
&lt;li&gt;Definir o tamanho da chave (4096 bits é o ideal para maior segurança).&lt;/li&gt;
&lt;li&gt;Configurar a validade da chave (opcional, mas "0" define que a chave não expira).&lt;/li&gt;
&lt;li&gt;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 &lt;code&gt;git config --global user.email&lt;/code&gt; e &lt;code&gt;git config --global user.name&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Criar uma senha segura para proteger sua chave privada.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Você verá uma tela parecida com esta, solicitando uma senha para a sua chave:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vmuvjnfqrtm74pwt5iu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vmuvjnfqrtm74pwt5iu.png" alt="Image description" width="800" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao final, sua chave será gerada e estará pronta para uso. Para confirmar que a chave foi criada, use o comando abaixo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gpg &lt;span class="nt"&gt;--list-secret-keys&lt;/span&gt; &lt;span class="nt"&gt;--keyid-format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;long
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Então você verá sua chave criada - algo parecido com isso:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqdya6qavjdzm4rd8taq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuqdya6qavjdzm4rd8taq.png" alt="Image description" width="708" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anote o ID da chave (após &lt;code&gt;sec rsa4096/&lt;/code&gt;). Note que o ID da chave exibida no exemplo acima é &lt;code&gt;A7716F4C1DB8579B&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Passo 3: Exportar sua chave pública
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gpg &lt;span class="nt"&gt;--armor&lt;/span&gt; &lt;span class="nt"&gt;--export&lt;/span&gt; ID DA SUA CHAVE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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 &lt;a href="https://keyserver.ubuntu.com/" rel="noopener noreferrer"&gt;keyserver.ubuntu.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;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 &lt;em&gt;settings&lt;/em&gt;. Dentro de settings, localize a opção abaixo:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffluurhrv9depbj8b59u7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffluurhrv9depbj8b59u7.png" alt="Image description" width="800" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao clicar, você verá uma tela parecida com esta:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwfz7a0z6hifxkz35o68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwfz7a0z6hifxkz35o68.png" alt="Image description" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;h2&gt;
  
  
  Passo 4: Configurar o GPG no Git
&lt;/h2&gt;

&lt;p&gt;Para usar sua chave GPG no Git, primeiro descubra o ID da sua chave com o comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gpg &lt;span class="nt"&gt;--list-secret-keys&lt;/span&gt; &lt;span class="nt"&gt;--keyid-format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;long
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anote o ID da chave (após &lt;code&gt;sec rsa4096/&lt;/code&gt;). Em seguida, configure o Git para usar essa chave:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.signingkey SEU_ID_DA_CHAVE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ative a assinatura automática de commits com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; commit.gpgsign &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Passo 5: Assinar seus commits
&lt;/h2&gt;

&lt;p&gt;Agora, ao fazer um commit, ele será automaticamente assinado. Você pode verificar isso com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--show-signature&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;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:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfzt8ox63o22rd5qipyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfzt8ox63o22rd5qipyw.png" alt="Image description" width="472" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Forte abraço!&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>gpg</category>
      <category>security</category>
    </item>
  </channel>
</rss>
