# Gerar uma nova chave GPG

Caso você não tenha uma chave GPG existente, é possível gerar uma nova chave GPG para usar na assinatura de commits e tags.

### Algoritmos de chave GPG suportados

O GitHub dá suporte a vários algoritmos de chave GPG. Se você tentar adicionar uma chave gerada com um algoritmo não suportado, você pode encontrar um erro.

* RSA
* ElGamal
* DSA
* ECDH
* ECDSA
* EdDSA

## Gerar uma chave GPG

> \[!NOTE]
> Antes de gerar uma nova chave GPG, verifique seu endereço de email. Se você não tiver verificado seu endereço de email, não poderá assinar confirmações e marcas com GPG. Para obter mais informações, consulte [Verificar endereço de e-mail](/pt/account-and-profile/how-tos/email-preferences/verifying-your-email-address).

1. Baixe e instale [as ferramentas de linha de comando do GPG](https://www.gnupg.org/download/) para seu sistema operacional. A instalação da última versão de seu sistema operacional é recomendada.

2. Abra <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

3. Gere um par de chaves GPG. Como há várias versões do GPG, talvez seja necessário consultar a [*página de manual*](https://en.wikipedia.org/wiki/Man_page) relevante para encontrar o comando de geração de chave apropriado.
   * Se a sua versão for 2.1.17 ou posterior, cole o texto abaixo para gerar um par de chaves GPG.

     ```shell copy
     gpg --full-generate-key
     ```

   * Se você não estiver usando a versão 2.1.17 ou superior, o comando `gpg --full-generate-key` não funcionará. Cole o texto abaixo e passe para a etapa 6.

     ```shell copy
     gpg --default-new-key-algo rsa4096 --gen-key
     ```

4. No prompt, especifique o tipo de chave desejada ou pressione `Enter` para aceitar o padrão.

5. No prompt, especifique o tamanho de chave desejado ou pressione `Enter` para aceitar o padrão.

6. Digite o prazo de validade da chave. Pressione `Enter` para especificar a seleção padrão, indicando que a chave não vence. A menos que você precise de uma data de validade, recomendamos aceitar essa configuração padrão.

7. Verifique se suas seleções estão corretas.

8. Insira seu ID de usuário.

   > \[!NOTE]
   > Quando solicitado a inserir seu endereço de email, verifique se você inseriu o endereço de email verificado para sua conta GitHub.

Para manter seu endereço de email privado, use seu endereço de email `no-reply` fornecido pelo GitHub.

Para obter mais informações, consulte [Verificar endereço de e-mail](/pt/account-and-profile/how-tos/email-preferences/verifying-your-email-address) e [Configurar o endereço de e-mail do commit](/pt/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address).

1. Digite uma frase secreta segura.

2. Use o comando `gpg --list-secret-keys --keyid-format=long` para listar a forma longa das chaves GPG para as quais você tem uma chave pública e privada. Uma chave privada é necessária para assinar commits ou tags.

   ```shell copy
   gpg --list-secret-keys --keyid-format=long
   ```

   > \[!NOTE]
   > Algumas instalações de GPG no Linux podem exigir o uso de `gpg2 --list-keys --keyid-format LONG` para ver uma lista das chaves existentes. Nesse caso, você também precisará configurar o Git para usar `gpg2` executando `git config --global gpg.program gpg2`.

3. Da lista de chaves GPG, copie a forma longa do ID da chave GPG que você gostaria de usar. Neste exemplo, a ID da chave GPG é `3AA5C34371567BD2`:

   ```shell copy
   $ gpg --list-secret-keys --keyid-format=long
   /Users/hubot/.gnupg/secring.gpg
   ------------------------------------
   sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
   uid                          Hubot <hubot@example.com>
   ssb   4096R/4BB6D45482678BE3 2016-03-10
   ```

4. Cole o texto abaixo, substituindo o ID da chave GPG que você quer usar. Neste exemplo, a ID da chave GPG é `3AA5C34371567BD2`:

   ```shell copy
   gpg --armor --export 3AA5C34371567BD2
   # Prints the GPG key ID, in ASCII armor format
   ```

5. Copie a chave GPG, começando com `-----BEGIN PGP PUBLIC KEY BLOCK-----` e terminando com `-----END PGP PUBLIC KEY BLOCK-----`.

6. [Adicione a chave GPG à sua conta GitHub](/pt/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account).

## Leitura adicional

* [Verifique se existem chaves GPG](/pt/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys)
* [Adicionando uma chave GPG à sua conta de GitHub](/pt/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
* [Informar ao Git sobre a chave de assinatura](/pt/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [Associar um e-mail à chave GPG](/pt/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)
* [Assinar commits](/pt/authentication/managing-commit-signature-verification/signing-commits)
* [Assinar tags](/pt/authentication/managing-commit-signature-verification/signing-tags)