martes, 27 de noviembre de 2018

Administra tus credenciales de Git con Gnome Keyring


Si sueles utilizar servicios de Git en internet para almacenar tu código fuente, seguramente ya te has encontrado con la molestia de tener que introducir constantemente tus credenciales al momento de hacer push de tus cambios hacia el repositorio remoto. Una opción para evitar esto es utilizar el protocolo SSH y un certificado de seguridad, pero suele ser un poco mas difícil de configurar, y suele ser bloqueado por los cortafuegos.

Para evitar tener que ingresar tus credenciales al subir tu código, una excelente opción es utilizar el asistente para el manejo de credenciales de Git (credential helper). Dicho asistente permite guardar las credenciales de forma automática en un almacén, para que solamente las ingreses una vez, y Git se encargue de utilizarlas en los accesos subsecuentes al repositorio remoto. Cabe mencionar que el tiempo que se almacenan las credenciales depende del almacén que se utilice, así como las configuraciones que se apliquen.

Si utilizas Linux para desarrollar, y Git 1.8 o superior, un buen almacén que puedes utilizar es el Gnome Keyring, que de acuerdo a Wikipedia:

Es una aplicación demonio diseñada para gestionar de manera segura las credenciales de acceso del usuario, como los nombre de usuario y las contraseñas. Los datos sensibles son cifrados y guardados en un archivo «llavero» (keyring, en GNOME llamado «anillo de claves») en la carpeta personal del usuario. El llavero predeterminado usa la contraseña de inicio de sesión para realizar el cifrado, así que los usuarios no necesitan recordar otra contraseña aparte de la que usan para iniciar sesión en su computadora. 
Si utilizas el escritorio de Gnome, es muy probable que ya tengas esta aplicación instalada. Si no es el caso, puedes descargarla e instalarla fácilmente utilizando el administrador de paquetes de tu sistema operativo. En mi caso que utilizo una distro de Arch Linux, el comando para realizar la instalación desde la terminal es:

# pacman -S gnome-keyring

En el caso de Ubuntu y derivados:

# apt-get install gnome-keyring

Luego es necesario instalar libgnome-keyring, que es una librería cliente necesaria para que Git pueda hacer uso del almacén de llaves:

# pacman -S libgnome-keyring

El equivalente para ubuntu:

# apt-get install libgnome-keyring-dev

NOTA: Es posible instalar solamente libgnome-keyring, ya que este suele tener como dependencia a gnome-keyring, por lo que usualmente será instalado de forma automática.

Luego es necesario generar los binarios de Git para el soporte de Gnome Keyring para nuestra plataforma específica. Para ello, cambiamos el directorio de trabajo de la terminal hacia la ubicación de los fuentes provistos por Git para el almacén. En el caso de Arch linux:

$ cd /usr/share/git/credential/gnome-keyring

Y en el caso de ubuntu:

$ cd /usr/share/doc/git/contrib/credential/gnome-keyring

Luego compilamos los fuentes mediante el comando make, ejecutado como súper usuario:

# make

Una vez generados los binarios, le decimos a Git que deseamos utilizar a Gnome Keyring como nuestro almacén global de credenciales. Esto lo podemos hacer con el siguiente comando, en Arch Linux:

$ git config --global credential.helper /usr/share/git/credential/gnome-keyring/git-credential-gnome-keyring

Y en Ubuntu:

$ git config --global credential.helper /usr/share/doc/git/contrib/credential/gnome-keyring/git-credential-gnome-keyring

Una vez hecho esto, solo se nos pedirá una vez más ingresar las credenciales para conectarnos a cada repositorio remoto, y estas serán almacenadas automáticamente para ser reutilizadas en los accesos posteriores.

Cabe mencionar que para administrar las credenciales almacenadas en el llavero de Gnome, se puede utilizar Seahorse, que es una aplicación front-end de Gnome para la gestión de Claves PGP y SSH.

Seahorse

Las explicaciones sobre el uso de esta herramienta quedan fuera del alcance de esta entrada del blog, pero puedes encontrar más información en el siguiente enlace: https://ubunlog.com/seahorse-cifra-datos-escritorio/

Related Articles

0 comentarios:

Publicar un comentario

Con la tecnología de Blogger.