Corrección del error “HTTP Básico: Acceso denegado” y “Error de autenticación fatal” con GitLab

Entonces, el otro día pensé en usar mi largamente olvidado GitLab cuenta para almacenar y rastrear toda la personalización que hago en el sitio web del Manual de Linux.

Creé un nuevo repositorio en la interfaz web de GitLab y luego subí 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 se enfrenta a un problema similar, permítame mostrarle cómo solucionar este error.

Manejo del error “remoto: HTTP básico: 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 verifique si ya tiene 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 simplemente ir a esta página cuando inicie 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.

Compruebe si puede 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 una salida como esta 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'.
                      
                    

¿Sigues viendo 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 impulso 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: la autenticación falló”.

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

Related Posts