GNU/Linux >> Linux Esercitazione >  >> Linux

Correzione di HTTP Basic:accesso negato e errore di autenticazione irreversibile con GitLab

Quindi, l'altro giorno ho pensato di usare il mio account GitLab a lungo dimenticato per archiviare e tenere traccia di tutte le personalizzazioni che ho apportato al sito Web di Linux Handbook.

Ho creato un nuovo repository sull'interfaccia web di GitLab e ho continuato a eseguire il push della directory che avevo sul mio sistema personale.

Tutto è andato bene fino a quando non ho provato a inviare il codice al repository remoto su GitHub. Mi ha dato un errore fatale dicendo "Autenticazione non riuscita per il repository xyz".

Ecco come si presentava l'errore:

[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/'

Se stai riscontrando un problema simile, lascia che ti mostri come correggere questo errore.

Gestione dell'errore "remoto:HTTP Basic:accesso negato" con GitLab

La riga principale che fornisce qualche indizio sulla causa principale di questo errore è questa:

remote: HTTP Basic: Access denied

Perché lo dico? Perché il tuo repository GitLab utilizza HTTPS. Si aspetta di avere una connessione sicura tra il tuo sistema e il tuo repository.

Ora, non dovrebbe usare automaticamente HTTPS? No! Non più.

GitLab ha cambiato la sua politica e ora si aspetta che tu usi la tua chiave SSH per autenticarti con il tuo repository GitLab.

In altre parole, per inviare un codice dal tuo sistema locale al tuo repository GitLab remoto, devi creare una coppia di chiavi SSH e aggiungere la chiave pubblica al tuo profilo GitLab .

Sto usando Linux, quindi i passaggi sono meglio seguiti su Linux. Se stai usando Windows o macOS, dovresti dare un suggerimento e controllare come fare lo stesso sul tuo sistema operativo.

Per prima cosa controlla se hai già le chiavi SSH:

ls ~/.ssh/id_rsa.pub

Se non ce l'hai, crealo utilizzando la sezione successiva, altrimenti passa alla sezione successiva a questa.

Creazione di chiavi SSH (se non le hai già)

Sto usando Ubuntu, quindi i passaggi sono per Ubuntu. Se stai utilizzando altre distribuzioni, i passaggi potrebbero essere diversi o meno.

Apri un terminale e usa il seguente comando:

ssh-keygen

Dovresti vedere un output come questo:

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

Premi il tasto Invio e vai con la scelta predefinita. Ti potrebbe essere chiesto di inserire una password per proteggere la tua chiave SSH. Se imposti una password, dovrai inserirla ogni volta che provi a stabilire una connessione SSH utilizzando la chiave SSH generata. Puoi o meno impostare una password per la chiave SSH.

Aggiunta della chiave SSH pubblica a GitLab

Se hai creato una chiave SSH sul tuo personal computer, dovresti trovarla nella directory .ssh nella tua home directory nella maggior parte delle distribuzioni Linux. Visualizza il suo contenuto con questo comando:

cat ~/.ssh/id_rsa.pub

Copia il contenuto della tua chiave pubblica. Ora accedi al tuo account GitLab, vai su Impostazioni utente e cerca le chiavi SSH nella barra laterale di sinistra. In alternativa, puoi semplicemente andare a questa pagina dopo aver effettuato l'accesso.

Vedrai un campo per aggiungere la chiave pubblica. Basta incollare la chiave qui. Assegnagli un titolo per riconoscere facilmente a quale computer appartiene questa chiave. A meno che tu non abbia fatto qualcosa da solo, le chiavi SSH non hanno una data di scadenza per impostazione predefinita. Quindi lascia inalterato il campo di scadenza.

Fatto tutto? Premi il pulsante Aggiungi chiave.

Puoi aggiungere più di una chiave SSH. È normale se hai più di un computer.

Verifica se puoi inviare il codice a GitLab ora

Quindi, hai aggiunto la tua chiave SSH al tuo profilo GitLab. Le cose dovrebbero andare bene ora. È ora di verificarlo.

Prova a spingere di nuovo il tuo codice. Vedi se funziona. Normalmente, dovresti vedere un output come questo se ha esito positivo:

[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'.

Vedi ancora l'errore? Fai attenzione alla differenza tra il nome utente del profilo GitLab e il nome utente dell'account!

L'ho imparato a mie spese.

GitLab ha due nomi utente:nome utente profilo e nome utente account.

Puoi facilmente modificare il nome utente del profilo senza alcuna conseguenza. Ma cambiare il nome utente dell'account può essere catastrofico.

Il nome utente dell'account è quello che vedrai nell'URL del tuo repository GitLab:

https://gitlab.com/gitlab_account_username/repository_name

Durante la creazione di un nuovo repository GitLab dal suo sito Web, GitLab ha suggerito di utilizzare il nome utente del profilo nelle impostazioni di configurazione di Git sul personal computer.

L'ho fatto e ho provato a utilizzare lo stesso nome utente del profilo durante il push del codice nel repository. Non sorprende che sia stato negato anche dopo aver aggiunto la chiave 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/'

Quindi, il trucco è usare il nome utente dell'account GitLab qui. Quando l'ho fatto, il push al repository GitLab remoto ha avuto successo.

Ha funzionato per te?

Bene, ho condiviso il mio calvario con il push del codice nel repository GitLab. Spero che questo ti abbia aiutato anche con l'errore "fatale:autenticazione non riuscita".

Ha funzionato per te? Fammi sapere con un sì o un no nella sezione commenti.


Linux
  1. Come generare una coppia di chiavi SSH (con esempi)

  2. Come configurare l'autenticazione basata su chiave SSH in Linux

  3. SSH – Generazione e utilizzo di chiavi ssh

  4. Come connettersi al server ssh con plink e cmd e chiave pubblica

  5. Come correggere l'errore – ModSecurity:accesso negato con codice 44 [Apache]

Come utilizzare l'autenticazione a chiave pubblica con SSH

Autenticazione HTTP di base con Nginx

Come proteggere ONLYOFFICE con Lets Encrypt e l'autenticazione a due fattori

Autenticazione SSH Ansible ed escalation dei privilegi

Correzione dell'errore del tubo rotto con la connessione SSH

Accedi con una chiave privata SSH su Linux e macOS