Saltar al contenido

¿Dónde almacenar el token de acceso personal de GitHub?

Nuestro equipo de especialistas despúes de algunos días de investigación y recopilación de de información, dimos con la respuesta, esperamos que resulte útil para ti para tu proyecto.

Solución:

La mitad del objetivo de las contraseñas es que (idealmente) las memoriza y el sistema las codifica, por lo que nunca se almacenan en ningún lugar como texto sin formato.
Sin embargo, el sistema de token de acceso personal de GitHub parece básicamente obligarlo a almacenar el token en texto sin formato.

En primer lugar, un PAT (Token de acceso personal) no es una simple contraseña, sino un equivalente que:

  • puede generar varias veces (por ejemplo, una por máquina desde la que necesita acceder al repositorio de GitHub)
  • usted puede revocar en cualquier momento (desde la interfaz web de GitHub), lo que hace que ese PAT quede obsoleto, incluso si permanece en una de esas máquinas.

Eso difiere de su contraseña, que es única para su cuenta y no se puede cambiar fácilmente sin tener que además modifíquelo en cualquier lugar donde lo use.


Dado que se puede usar una PAT en lugar de una contraseña cuando se realizan operaciones de Git a través de HTTPS con Git en la línea de comando o la API, puede usar un asistente de credenciales de git para almacenarlo en caché de forma segura.
En Windows, por ejemplo, eso usaría el Administrador de credenciales de Windows, a través del GCM (Git Credential Manager) para Windows:

git config --global credential.helper manager

La primera vez que ingresa a un repositorio, una ventana emergente le pedirá sus credenciales: nombre de usuario y tu PAT.
La próxima vez, no preguntará y reutilizará directamente esa PAT, que permanece almacenada de forma segura en su Credential Manager.

Una idea similar se aplica a Mac con el llavero OSX y Linux con el llavero GNOME.
La idea permanece: almacenar el PAT en un encriptado almacén de credenciales.


La solución más moderna (cuarto trimestre de 2020) es microsoft Git-Credential-Manager-Core

git config --global credential.helper manager-core

Necesitas que eso se instale git-credential-manager-core, descargando gcmcore-linux_amd64.2.0.252.766.deb

sudo dpkg -i 
git-credential-manager-core configure

El soporte de Linux aún no está completamente implementado, pero lo estará pronto.

En mi caso, en Ubuntu, la solución aceptada no funcionó con un mensaje como

git: ‘credential-manager’ no es un comando git

pero store en vez de manager funcionado bien:

git config --global credential.helper store

Me gusta mantenerlos encriptados dentro del repositorio y cargarlos usando .envrc (https://direnv.net/)

Para hacer esto, uso ssh-vault para cifrar los datos usando mi ssh keys que GitHub ya está exponiendo, por ejemplo:

echo MY_TOKEN="secret" | ssh-vault -u  create > my-encypted-vars.ssh

Entonces el contenido de .envrc se parece a esto:

echo "Enter ssh key password"
context=$(ssh-vault view $HOME/projects/my-encrypted.ssh | tail -n +2)
export $context

Esto descifrará los datos en my-encrypted-vars.ssh archivar y configurar MY_TOKEN en mis variables de entorno cada vez que cd en el directorio del proyecto.

Al hacer esto, los tokens/variables se almacenan de forma “segura” y siempre están listos para usar como variables de entorno.

Si tienes alguna cuestión o disposición de aclarar nuestro crónica te evocamos añadir una explicación y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *