Configuración de terminal en macOS


Configuración de terminal en macOS

Los commits verificados son una forma de demostrar que el commit proviene de una persona verificada. Esto es útil para los proyectos de código abierto, donde los contribuyentes pueden no conocerse entre sí. Los commits verificados se muestran con un icono de verificación junto al nombre del autor del commit en GitHub.

Esta guía te mostrara como configurar tus commits para que aparezcan como verificados en GitHub. Yo he utilizado MacOS para esta guía, pero los pasos son similares para Windows y Linux.

Comprueba que tu correo está verificado en GitHub

Para ello, ve a la página de GitHub y pulsa sobre el icono de tu avatar en la esquina superior derecha. En el menú desplegable, selecciona Settings. A continuación pulsa sobre Emails en el menú de la izquierda. Ahora, comprueba si tu correo electrónico está en la lista y si está verificado. Si no lo está, pulsa sobre el botón Resend verification email para que GitHub te envíe un correo de verificación.

Generar una clave GPG

En MacOS recomiento instalar GPG Suite, que incluye GPG Keychain, una aplicación para generar claves GPG. Puedes descargar GPG Suite desde https://gpgtools.org/.

Ahora, ejecuta el siguiente comando

gpg --full-generate-key

Esto iniciará el proceso de generación de claves. Selecciona las siguientes opciones: Tipo de clave RSA and RSA. Tamaño de la clave 4096. A continuación, se te pedirá que elijas cuánto tiempo debe ser válida la clave. Puedes seleccionar 0 para que la clave no expire. Ahora, introduce el nombre con el que aparecerán tus commits. A continuación, se te pedirá que introduzcas tu correo electrónico. Debe ser el mismo correo electrónico que has verificado en GitHub. Es muy importante que sea el mismo correo, ya que sino tendremos un error al intentar firmar los commits. Por último, se te pedirá que introduzcas una contraseña para proteger tu clave. Introduce una contraseña segura y recuérdala, ya que la necesitarás para firmar tus commits.

Guardar clave GPG en GitHub

Ahora, ejecuta el siguiente comando para obtener el ID de tu clave GPG.

gpg --list-secret-keys --keyid-format=long

El ID de tu clave GPG es el valor que aparece después de sec en la salida del comando. En mi caso, el ID de mi clave GPG es 3AA5C34371567BD2. sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]

Ahora genera la clave con el siguiente comando:

gpg --armor --export 3AA5C34371567BD2

Copia la salida del comando y a continuación, ve a la página de GitHub y pulsa sobre el icono de tu avatar en la esquina superior derecha. En el menú desplegable, selecciona Settings. A continuación pulsa sobre SSH and GPG keys en el menú de la izquierda. Claves en GitHub

Claves en GitHub

Pulsa sobre New GPG key y pega la salida del comando anterior en el campo Key. Por último, pulsa sobre Add GPG key.

Configurar Git para firmar commits

Ahora, ejecuta los siguientes comandos para configurar Git para firmar commits.

git config --global --unset gpg.format
git config --global user.name "Tu nombre"
git config --global user.email "tu@emailverificado.com"
git config --global commit.gpgsign true
git config --global user.signingkey 3AA5C34371567BD2

(Opcional) Configuración de pinentry

Ahora, podemos configurar pinentry para que nos pida la contraseña de la clave GPG cada vez que firmemos un commit. Esto será útil para rellenar la contraseña utilizando touch ID. Para ello, ejecuta el siguiente comando:

brew install pinentry-mac
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
killall gpg-agent

brew tap jorgelbg/tap
brew install pinentry-touchid

Al ejecutar este comando te aparecerán en el terminal las instrucciones a seguir, ejecuta los diferentes comandos y reinicia el terminal.

¡Listo!

Ahora, cada vez que hagas un commit, se te pedirá que introduzcas la contraseña de la clave GPG. Si has configurado pinentry, se te pedirá que introduzcas la contraseña utilizando touch ID. Si recibes algún error al hacer commit verifica los pasos utilizados y comprueba que el correo configurado en git y en GitHub es el mismo, y este fue utilizado para generar la clave GPG.