¿Últimamente has encontrado este mensaje al ejecutar algunos comandos en git?
Logon failed, use ctrl+c to cancel basic credential prompt.
remote: Support for password authentication was removed on August 13, 2021.
Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access ‘<repositório Git>’: The request URL returned error: 403
Esto sucedió, porque Github anunció un nuevo requisito de autenticación basado en token para Git. A partir del día 13 de agosto de 2021, la contraseña de la cuenta de Github ya no es aceptada para autenticar operaciones en Git.
Este cambio se debe por motivos de seguridad, ya que los tokens ofrecen algunos beneficios, como la posibilidad de guardar las informaciones del usuario en el token y no en el servidor, así como el hecho de poder configurarse para tener los permisos que desees y tener un periodo de expiración. Es decir, deja de funcionar después de un determinado tiempo, como si fuera una contraseña única y desechable.
De esta forma, si otra persona tiene acceso a tu token, se restringirá únicamente los permisos que hayas configurado previamente. Entonces, no tendrás el riesgo de perder tu cuenta de Github, ya que puedes descartar el token perdido y generar otro nuevamente.
Github recomienda empezar a utilizar un token de acceso personal, pero si lo deseas, puedes optar por usar una clave SSH.
De esta manera, sigue un paso a paso de como generar tu token personal:
1) En la página de Github, entra en tu cuenta. 2) Ya en la página principal, selecciona tu usuario en el rincón superior derecho y haz clic en la opción Settings:
3) En la página que abrirá, haz clic en la opción Devoloper settings, 24ª opción de la lista a la izquierda.
4) Selecciona la opción Personal access tokens, 3ª opción de la lista a la izquierda. Luego selecciona Tokens(classic), 2ª opción en la lista que se abre luego abajo.
5) Haz clic en la opción Generate new token en la parte superior izquierda y luego en Generate new token (classic) que es la 2ª opción en la nueva lista que se abre.
6) Confirma con tu contraseña de Github.
7) Di un nombre para tu token y define el tiempo de expiración.
8) Marca los permisos que deseas conceder al token. Un detalle, para usar el token para acceder a repositorios, selecciona la opción repo.
9) Por último, al seleccionar todas las opciones elegidas, haz clic en Generate token al final de la pantalla.
Listo, aparecerá un código para que puedas copiar y pegar en el Administrador de Credenciales de tu máquina. Este proceso dependerá de tu sistema operacional.
Después que generas el token, cópialo y accede al Panel de Control. Lo puedes encontrar digitando en la barra de búsqueda.
En seguida, accede a Cuentas de Usuario:
Haz clic en Administrar Credenciales de Windows:
En Credenciales de Windows busca la sección de Credenciales Genéricas o github.com selecciónalo y ponlo a editar;
Copia el token generado en la primera etapa y pega en la caja de texto de la Contraseña.
En caso de que no encuentres el github.com, puedes seleccionar la opción Agregar una credencial genérica
Y llenar los campos:
¡Listo! Luego podrás realizar operaciones de Git nuevamente sin solicitudes de inicio de sesión hasta la fecha de expiración del token generado.
En Linux, este proceso solo se puede realizar en la terminal. Al abrir un repositorio de Git en él y ejecutar comandos como git pull, git push o git clone, Git solicitará usuario y contraseña. Si introduces tu contraseña de GitHub como se hacía anteriormente, recibirás el mensaje citado al principio:
De esta manera, simplemente tienes que ejecutar el comando de nuevo y en lugar de la contraseña, pegar tu token generado:
Así, el comando se ejecutará con éxito:
Sin embargo, aunque funcione, no es viable tener que pegar el token cada vez que se ejecutan estos comandos, ¿verdad? Para ello, simplemente escribe el siguiente comando para que la última contraseña utilizada se guarde:
git config --global credential.helper cache
De esta forma, en el próximo comando que se ejecute, Git solicitará la autenticación nuevamente, pero en los siguientes comandos, Git no pedirá tu nombre de usuario y contraseña de nuevo.
Y al final, en caso de que quieras quitar el token de la configuración, haz lo siguiente:
git config --global --unset credential.helper
De esta manera, volverás a tener las solicitudes de autenticación nuevamente:
Para configurar el token en Mac, el proceso es similar al de Windows. Accede a Keychain Access, para encontrarlo puedes hacer clic en el icono de búsqueda en la esquina derecha de la barra de menú:
Fuente: Imagen retirada de la Documentación de Github
A continuación, busca por github.com, haz clic en internet password, edita y pega el token personal generado.
Si quieres eliminarlo, en la terminal escribe:
git credential-osxkeychain erase
En resumen, este cambio en el uso de tokens para autenticación es muy interesante, ya que puede ofrecer un mayor control y seguridad. Puede realizar todo el proceso mencionado anteriormente tantas veces como sea necesario, así como configurar los permisos y el tiempo de expiración de cada token generado de la manera que consideres mejor.
En caso de fallas de seguridad, por ejemplo, la persona estará limitada a los permisos otorgados al token y su cuenta de GitHub seguirá a salvo. Además, si esto sucede, elimina tu token yendo a GitHub, luego a Settings, Developer settings y Personal access tokens, el mismo procedimiento para generar el token, pero haz clic en Delete:
Así estarás seguro nuevamente.
Camila Fernanda Alves
Soy casi ingeniera de la Universidad Federal de Uberlândia e instructora aquí en Alura. He trabajado como pasante en el Scuba Team y he realizado algunas tutorías de Física, Circuitos Eléctricos e incluso Procesamiento de Señales. Actualmente, estoy comenzando a producir contenido relacionado con DevOps y también estoy aquí para sumergirme en la tecnología con ustedes y, siempre que sea posible, tratar de ayudarlos a encontrar las respuestas que necesitan en los foros. En mi tiempo libre, me gusta jugar juegos de Nintendo y Valorant.
Este artículo fue adecuado para Alura Latam por: Bruno Souza
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
69289.36
CLP |
307472.10
COP |
65.90
USD |
264.35
PEN |
1435.53
MXN |
2978.57
UYU |
Plan Anual |
738.82
BOB |
105038.04
CLP |
466107.17
COP |
99.90
USD |
400.74
PEN |
2176.17
MXN |
4515.32
UYU |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana