# Generar una clave GPG nueva

Si no tienes una clave GPG existente, puedes generar una nueva clave GPG para usarla para firmar confirmaciones y etiquetas.

### Algoritmos compatibles de llave GPG

GitHub es compatible con varios algoritmos GPG. Si tratas de agregar una llave generada con un algoritmo no compatible, puedes llegar a un error.

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

## Generar una llave GPG

> \[!NOTE]
> Antes de generar una nueva clave GPG, asegúrate de haber verificado tu dirección de correo electrónico. Si no ha comprobado la dirección de correo electrónico, no podrá firmar confirmaciones y etiquetas con GPG. Para obtener más información, consulte [Verificar tu dirección de correo electrónico](/es/account-and-profile/how-tos/email-preferences/verifying-your-email-address).

1. Descarga e instala [las herramientas de línea de comandos de GPG](https://www.gnupg.org/download/) para tu sistema operativo. Generalmente recomendamos instalar la versión más reciente para tu sistema operativo.

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

3. Genera un par de claves GPG. Dado que hay varias versiones de GPG, puede que necesites consultar la [*página man*](https://en.wikipedia.org/wiki/Man_page) correspondiente para encontrar el comando de generación de clave adecuado.
   * Si estás usando la versión 2.1.17 o superior, pega el siguiente texto para generar un par de claves GPG.

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

   * Si no estás en la versión 2.1.17 o una versión posterior, el comando `gpg --full-generate-key` no funciona. Copia el siguiente texto y continúa con el paso 6.

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

4. En el símbolo del sistema, especifica el tipo de clave que quieras o presiona `Enter` para aceptar el valor predeterminado.

5. En la línea de comandos, especifica el tamaño de la clave que deseas o presiona `Enter` para aceptar el valor predeterminado.

6. Ingresa el periodo de validez que deberá tener la llave. Presiona `Enter` para especificar la selección predeterminada, que indica que la clave no expira. A menos que necesites una fecha de expiración, se recomienda aceptar este valor predeterminado.

7. Verifica que tus selecciones sean correctas.

8. Ingresa tu información de ID de usuario.

   > \[!NOTE]
   > Cuando se le pida que escriba su dirección de correo electrónico, asegúrese de escribir la dirección de correo electrónico verificada para su cuenta de GitHub.

Para mantener la privacidad de tu dirección de correo electrónico, puedes usar la dirección de correo electrónico `no-reply` proporcionada por GitHub.

Para obtener más información, consulte [Verificar tu dirección de correo electrónico](/es/account-and-profile/how-tos/email-preferences/verifying-your-email-address) y [Configurar tu dirección de correo electrónico de confirmación](/es/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address).

1. Escribe una contraseña segura.

2. Use el comando `gpg --list-secret-keys --keyid-format=long` para enumerar el formato largo de las claves de GPG para las que tiene una clave pública y privada. Se requiere una llave privada para registrar confirmaciones o etiquetas.

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

   > \[!NOTE]
   > Es posible que en algunas instalaciones de GPG en Linux sea necesario usar en cambio `gpg2 --list-keys --keyid-format LONG` para ver una lista de las claves existentes. En este caso, también tendrá que configurar Git para que use `gpg2` mediante la ejecución de `git config --global gpg.program gpg2`.

3. Desde la lista de llaves GPG, compia la forma larga de la ID de la llave GPG que quieres utilizar. En este ejemplo, el id. de clave de GPG es `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. Pega el siguiente texto sustituyendo el ID de la llave GPG que deseas usar. En este ejemplo, el id. de clave de GPG es `3AA5C34371567BD2`:

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

5. Copia la clave de GPG, que empieza por `-----BEGIN PGP PUBLIC KEY BLOCK-----` y termina con `-----END PGP PUBLIC KEY BLOCK-----`.

6. [Agregar la clave GPG a la cuenta de GitHub](/es/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account).

## Información adicional

* [Comprobación de claves GPG existentes](/es/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys)
* [Adición de una clave GPG a la cuenta de GitHub](/es/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
* [Informarle a Git acerca de tu clave de firma](/es/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [Asociar un correo electrónico con tu llave GPG](/es/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)
* [Firmar confirmaciones](/es/authentication/managing-commit-signature-verification/signing-commits)
* [Firmar etiquetas](/es/authentication/managing-commit-signature-verification/signing-tags)