@Author: [Camilo Yate] [camiloyate09@pm.me] [https://camiloyate.com/] Verified Commits on GPG Key
- Instalar GPG (https://www.gpg4win.org/)
- Crear una clave GPG
- Luego de presionar el bóton de generar, se debe ingresar una contraseña para la clave GPG (Está clave es muy importante, porque en cada Commit, nuestro IDE la va a solicitar)
- Ahora se ingresan los siguientes comandos en la terminal de git bash o PowerShell:
- Comando para conocer la llave GPG:
gpg --list-secret-keys --keyid-format LONG
- Nota, en la imagen anterior se presenta un nombre y correo difirente, en ese caso se debe reemplazar por el nombre y correo que se utilizó en el paso 3.
- Comando para exportar la llave GPG:
gpg --armor --export <ID de la llave GPG>
- Ahora ejecutamos los siguientes comandos
git config --global user.name "TESTING FIRMA"
, este nombre debe ser el mismo que se utilizó en el paso 3. Y debe hacer match con el repositorio de GitHub o Gitlab. - Ahora el correo que se tiene asociado con la cuenta de Github o
Gitlab
git config --global user.email <tu_correo_electronico@ejemplo.com>
- Luego poner el ID de la firma generada, en el paso 7 sobre la Palabra que indica 'sec' ->
rsa4096/{ID}
git config --global user.signingkey 43A638604C6789AB
- Ahora se debe configurar el commit para que sea firmado por defecto
git config --global commit.gpgsign true
- Ahora se debe configurar el siguiente parámetro
git config --global tag.gpgsign true
- Ahora se debe configurar el commit para que sea firmado por
defecto
git config --global merge.verifySignatures true
- Ahora se debe configurar la ruta de GPG
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
Para conocer la ruta se debe ejecutar el siguiente comandowhere gpg
- Finalmente la llave GPG se debe agregar en GitHub o Gitlab, para ello se debe copiar el contenido del paso 10 y pegarlo en la configuración de la cuenta. Y para Gitlab 🐈
- Ahora se debe crear un repositorio en GitHub o Gitlab y clonarlo en local.
- Configuración de la firma con el IDE de gusto, en este caso IntelliJ IDEA.
- Ahora se debe crear un archivo de texto con el nombre
README.md
y agregar el contenido que se desee. - Y probamos el commit con la firma
git commit -S -m "Prueba de firma"
y realizamos un Push al repositorio remoto luego pedirá la contraseña de la llave GPG. - Verificamos en el repositorio remoto, que todos nuestro commit´s estén firmados.
- Autenticación: Los commits firmados permiten verificar que el autor del commit es quien dice ser.
- Integridad: Los commits firmados garantizan que el código no ha sido modificado desde que se realizó el commit.
- No repudio: Los commits firmados permiten al autor del commit no negar haber realizado el commit.
- https://docs.github.com/en/github/authenticating-to-github/managing-commit-signature-verification
- https://docs.github.com/en/github/authenticating-to-github/generating-a-new-gpg-key
- https://docs.github.com/en/github/authenticating-to-github/adding-a-new-gpg-key-to-your-github-account
- https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/
- https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/#adding-a-gpg-key-to-your-git-config
- https://docs.github.com/en/authentication/managing-commit-signature-verification
- https://git-scm.com/doc
- https://www.devdungeon.com/content/gpg-tutorial