14 de febrero de 2022

Github por consola usando personal token

Desde agosto de 2021 ya no se puede usar el usuario y contraseña para hacer operaciones desde la consola y es necesario usar un token personal.

Evidentemente, memorizar un token (o varios) es una locura, con lo que cachearlo de una forma segura es la más adecuado.

Existen varias formas de lograrlo. Se puede usar Github CLI, pero personalmente prefiero usar git que es más genérico.

Creando el token

Lo primero que hace falta es crear un token. Sobre nuestra foto de perfil pinchamos y seguimos esta ruta:

Settings > Developer settings > Personal access tokens

Le pongo un nombre al nuevo token, la caducidad y marco sólo el scope "repo"

NOTA: Dependiendo de lo que se use pueden hacer falta marcar otras opciones como workflow, si las necesitamos se rechazará por ejemplo nuestro push y nos indicará si tenemos que dar más permisos que implicaría crear de nuevo otro token.

En mi caso me creo uno por dispositivo, servicio u ocasión (como en un ordenador compartido para una demo) y así puedo tener más controlado los que están activos y en caso de creer que está comprometido puedo revocarlo. Así que le pongo el nombre del dispositivo y en mi ordenador trabajo habitual lo pongo sin caducidad.

Al crear el token lo copiamos, porque luego desaparece, y lo usamos para comprobar que funciona en el mismo lugar que antes introducíamos la contraseña.

Hacemos la prueba clonando un repositorio usando HTTP.

NOTA: En esta guía usamos la forma más simple para un usuario particular. Hay muchas formas distintas que cada uno tendrá evaluar si son más adecuadas (SSH, doble factor, etc...).

Cacheando las credenciales

Hay varios métodos para guardar credenciales con la ayuda de git.

Mi preferido es configurar el archivo para almacenarlas para mi usuario en mi home con el comando:

git config --global credential.helper 'store --file ~/.mis-credenciales-git'

Una vez configurado, se utiliza la primera vez el nombre de usuario y el token como contraseña y ya estará almacenado.

Si lo hacemos global hay que tener en cuenta que almacenará, en claro, todas las credenciales que usemos en todos los repositorios (github, gitlab, etc...). Se puede ver lo que ha guardado simplemente abriendo el fichero.

Si por cualquier razón pensáramos que el archivo está comprometido simplemente se anula el token en github (ojo si contiene más credenciales). Si ya no quisiéramos usar un fichero para el cacheo es buena idea borrarlo.

Compárteme

Entradas populares