GNU/Linux >> Tutoriales Linux >  >> Linux

Corrección de HTTP básico:acceso denegado y error de falla de autenticación fatal con GitLab

Entonces, el otro día pensé en usar mi cuenta de GitLab olvidada hace mucho tiempo para almacenar y rastrear todas las personalizaciones que hago en el sitio web del Manual de Linux.

Creé un nuevo repositorio en la interfaz web de GitLab y continué insertando el directorio que tenía en mi sistema personal.

Todo estuvo bien hasta que intenté enviar el código al repositorio remoto en GitHub. Me dio un error fatal que decía "Error auténtico para el repositorio xyz".

Así es como se veía el error:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
[email protected]': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository/'

Si tiene un problema similar, permítame mostrarle cómo solucionar este error.

Manejo del error "remote:HTTP Basic:Acceso denegado" con GitLab

La línea principal que da alguna pista sobre la causa raíz de este error es esta:

remote: HTTP Basic: Access denied

¿Por qué digo eso? Porque su repositorio de GitLab está usando HTTPS. Espera tener una conexión segura entre su sistema y su repositorio.

Ahora bien, ¿no debería usar automáticamente HTTPS? ¡No! Ya no.

GitLab ha cambiado su política y ahora espera que use su propia clave SSH para autenticarse con su repositorio de GitLab.

En otras palabras, para enviar un código desde su sistema local a su repositorio remoto de GitLab, debe crear un par de claves SSH y agregar la clave pública a su perfil de GitLab .

Estoy usando Linux, por lo que es mejor seguir los pasos en Linux. Si está utilizando Windows o macOS, debe tomar una pista y verificar cómo hacer lo mismo en su sistema operativo.

Primero comprueba si ya tienes claves SSH:

ls ~/.ssh/id_rsa.pub

Si no lo tiene, créelo usando la siguiente sección; de lo contrario, salte a la sección posterior a esta.

Creación de claves SSH (si aún no las tiene)

Estoy usando Ubuntu, así que los pasos son para Ubuntu. Si está utilizando otras distribuciones, los pasos pueden o no ser diferentes.

Abra una terminal y use el siguiente comando:

ssh-keygen

Debería ver una salida como esta:

Generating public/private rsa key pair.
Enter file in which to save the key (/user_home/.ssh/id_rsa):

Pulse la tecla Intro y elija la opción predeterminada. Es posible que se le solicite que ingrese una contraseña para proteger su clave SSH. Si establece una contraseña, deberá ingresarla cada vez que intente establecer una conexión SSH utilizando la clave SSH generada. Puede establecer o no una contraseña para la clave SSH.

Agregar clave SSH pública a GitLab

Si ha creado una clave SSH en su computadora personal, debe encontrarla en el directorio .ssh debajo de su directorio de inicio en la mayoría de las distribuciones de Linux. Muestre su contenido con este comando:

cat ~/.ssh/id_rsa.pub

Copie el contenido de su clave pública. Ahora inicie sesión en su cuenta de GitLab, vaya a Configuración de usuario y busque las claves SSH en la barra lateral izquierda. Alternativamente, puede ir a esta página cuando haya iniciado sesión.

Verá un campo para agregar la clave pública. Simplemente pegue la clave aquí. Asígnele un título para reconocer fácilmente a qué computadora pertenece esta clave. A menos que haya hecho algo por su cuenta, las claves SSH no tienen una fecha de caducidad de forma predeterminada. Así que deja intacto el campo de caducidad.

¿Terminaste con todo? Presiona el botón Agregar clave.

Puede agregar más de una clave SSH. Eso es normal si tiene más de una computadora.

Comprueba si puedes enviar el código a GitLab ahora

Entonces, agregó su clave SSH a su perfil de GitLab. Las cosas deberían estar bien ahora. Es hora de verificarlo.

Intente presionar su código nuevamente. A ver si funciona. Normalmente, debería ver un resultado como este si tiene éxito:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_account_username
Password for 'https://[email protected]': 
Enumerating objects: 127, done.
Counting objects: 100% (127/127), done.
Delta compression using up to 4 threads
Compressing objects: 100% (122/122), done.
Writing objects: 100% (127/127), 401.30 KiB | 6.37 MiB/s, done.
Total 127 (delta 14), reused 0 (delta 0)
remote: Resolving deltas: 100% (14/14), done.
To https://gitlab.com/gitlab_account_username/gitlab_repository.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

¿Todavía ve el error? ¡Cuidado con la diferencia entre el nombre de usuario del perfil de GitLab y el nombre de usuario de la cuenta!

Lo aprendí de la manera difícil.

GitLab tiene dos nombres de usuario:nombre de usuario de perfil y nombre de usuario de cuenta.

Puede cambiar fácilmente el nombre de usuario del perfil sin ninguna consecuencia. Pero cambiar el nombre de usuario de la cuenta puede ser catastrófico.

El nombre de usuario de la cuenta es lo que verá en la URL de su repositorio de GitLab:

https://gitlab.com/gitlab_account_username/repository_name

Al crear un nuevo repositorio de GitLab desde su sitio web, GitLab sugirió usar el nombre de usuario del perfil en la configuración de configuración de Git en la computadora personal.

Hice eso y traté de usar el mismo nombre de usuario de perfil mientras empujaba el código al repositorio. Como era de esperar, fue denegado incluso después de agregar la clave SSH:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
Password for 'https://[email protected]': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository.git/'

Entonces, el truco es usar el nombre de usuario de la cuenta de GitLab aquí. Cuando hice eso, el envío al repositorio remoto de GitLab fue exitoso.

¿Funcionó para ti?

Bueno, compartí mi terrible experiencia al enviar código al repositorio de GitLab. Espero que esto también te haya ayudado con el error "fatal:error de autenticación".

¿Funcionó para ti? Házmelo saber con un sí o un no en la sección de comentarios.


Linux
  1. Cómo generar un par de claves SSH (con ejemplos)

  2. Cómo configurar la autenticación basada en clave SSH en Linux

  3. Primeros pasos con SSH en Linux

  4. Permitir el inicio de sesión de root ssh solo con autenticación de clave pública

  5. ¿Puedo usar la autenticación de clave SSH para iniciar sesión en un sistema remoto con un nombre de usuario diferente?

Cómo utilizar la autenticación de clave pública con SSH

Autenticación HTTP básica con Nginx

Cómo asegurar ONLYOFFICE con Lets Encrypt y autenticación de dos factores

Autenticación SSH de Ansible y escalada de privilegios

Reparación de error de tubería rota con conexión SSH

Inicie sesión con una clave privada SSH en Linux y macOS