Errore Git: "Assicurati di disporre dei diritti di accesso corretti e che il repository esista"


98

Sto usando TortoiseGit su Windows. Quando provo a clonare dal menu contestuale di Windows Explorer standard, ottengo questo errore:

Assicurati di disporre dei diritti di accesso corretti e che il repository esista

Più precisamente, l'istantanea del terminale è la seguente:

git.exe clone --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Clonazione in "C: \ Work \ AlfaRobot" ...
Autorizzazione negata, riprova.
Autorizzazione negata, riprova.
Autorizzazione negata (chiave pubblica, password).
fatale: impossibile leggere dal repository remoto.

Assicurati di disporre dei diritti di accesso corretti
e che il repository esista.

git non è uscito in modo pulito (codice di uscita 128) (21450 ms @ 19.09.2014 10:36:58)

Cosa devo fare per far funzionare correttamente git?


1
prova a generare ssh keygen e aggiungi
Raja Simon

Utilizzando Shell (o Git Bash in Windows) per creare la chiave SSH:$ ssh-keygen -t rsa -C "youremail@example.com"
Belter

Ha avuto quell'errore dopo aver cambiato i repository in indirizzi git@github.com per non dover digitare la password tutto il tempo. Il vero errore che l'ha causato è stato dimenticare di aggiungere la mia chiave pubblica su GitHub.
dasWesen

Risposte:


77

Il tuo URL git potrebbe essere cambiato. Modificare l'URL nella directory locale utilizzando il seguente comando

git remote set-url origin git@yourGitUrlHere

17
FYI github ora utilizza uno schema URL:git remote set-url origin https://github.com/username/repository.git
RyPope

2
@RyPope puoi usare qualsiasi protocollo sia git (ssh) che https, è tuo desiderio. github ora ha entrambi i protocolli gite https.
Vishnu

@Vishnu What the XXXXXXX?
244boy

@RyPope Convert it to an answer
ishandutta2007

Un errore molto comune è stato fatto da me. Ho copiato usando il comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, ma durante l'incollaggio nella casella di immissione della chiave GitHub, ho rimosso l'ultima nuova riga usando backspace, che in realtà ha cambiato la chiave pubblica. Quindi, copia e incolla sempre la chiave pubblica ssh così com'è senza rimuovere l'ultima nuova riga.
Amreesh Tyagi

62

Questo problema potrebbe essere dovuto al tuo ssh-agent, la tua chiave ssh non è stata aggiunta con ssh-agent. Devi applicare i seguenti passaggi usando il tuo terminale: -

  1. $ eval "$ (ssh-agent -s)"

    Agente pid 5867

  2. $ ssh-add

    Inserisci la passphrase per /home/you/.ssh/id_rsa: [] Identità aggiunta: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

allora funzionerà..cheers J.


11
fatal: Could not read from remote repository.
Ricevo

Grazie che ha funzionato per me, ho creato una chiave diversa da quella predefinita id_rsa, quindi devo solo fare in aggiunta al comando sopra ssh-add -K ~ / .ssh / id_rsa_other_project.
Nitesh

Sì, questo non risolverà alcun problema. L'aggiunta della tua identità a ssh interrompe solo la richiesta della password del certificato ogni volta
DMcCallum83

Saluti. Non ero riuscito a scappare brew update. quando ho eseguito ssh-addprima di eseguire il comando, ha funzionato. spero di non doverlo ripetere tutto il tempo.
nyxee

continua a ricevere l'errore "Verifica della chiave host non riuscita. Errore irreversibile: impossibile leggere dal repository remoto". ma l'aggiunta di host noto fisso per me: stackoverflow.com/questions/15214977/...
rickvian

37

Prova a usare HTTPS invece SSH mentre prendi clone da GIT, usa questo URL per prendere clone, puoi usare Gitbase, Android Studio o qualsiasi altro strumento per clonare il ramo. inserisci qui la descrizione dell'immagine


35

Per me è stato a causa della mancanza della chiave SSH sulla macchina. Controlla la chiave SSH in locale:

$ cat ~/.ssh/id_rsa.pub

Questa è la tua chiave SSH. Aggiungilo alle tue chiavi SSH nel repository.
In gitlab vai a

impostazioni del profilo -> Chiavi SSH

e aggiungi la chiave


7
Ho aggiunto la chiave come hai menzionato e ricevo ancora il messaggio di accesso negato. Si prega di aiutare
Jet il

18

Github ora utilizza uno schema URL

git remote set-url origin https://github.com/username/repository.git


9

Stai tentando di clonare il repository su ssh: git@arobotdev...e le tue chiavi SSH non sono impostate correttamente sul server. Ci sono molte ragioni per questo:

  1. La tua chiave pubblica potrebbe non essere salvata nel file authorized_keys dell'utente git
  2. Se 1 non è vero, la tua chiave privata non viene salvata nella cartella .ssh / del tuo HOMEDIR.
  3. Le autorizzazioni non sono impostate correttamente

Se tutti e 3 i precedenti non sono veri, la mia unica conclusione può essere quella di provare: git@arobotdev:AlfaRobot.git supponendo che AlfaRobot.git sia in HOMEDIR di git user e non all'interno di una cartella chiamata git che risiede in HOMEDIR di user git.


5

Il file rsa.pub (ovvero la chiave pubblica generata), deve essere aggiunto nella pagina github >> impostazioni >> chiavi ssh. Verificare di non aver aggiunto questa chiave pubblica in repository-settings >> chiavi di distribuzione. In tal caso, rimuovere la voce da qui e aggiungerla al primo posto menzionato.

Configurazione dettagliata delle chiavi pub-private .

Funzionerà da qui!


3
  1. La prima cosa che potresti voler confermare è la connessione a Internet. Tuttavia, i problemi di Internet per lo più diranno che non è possibile accedere al repository.

  2. Assicurati di aver configurato ssh sia localmente che su GitHub. Guarda come

  3. Assicurati di utilizzare il telecomando ssh git. Se hai clonato l'https, imposta l'url sull'url ssh, con questo comando gitgit remote set-url origin git@github.com:your-username/your-repo-name.git

  4. Se hai configurato ssh correttamente ma ha smesso di funzionare, procedi come segue:

    • eval "$(ssh-agent -s)"
    • ssh-add

    Se il problema persiste, assicurati di non aver eliminato ssh dal tuo GitHub. Nel caso in cui ssh sia stato eliminato da GitHub, puoi aggiungerlo di nuovo. Usa pbcopy < ~/.ssh/id_rsa.pubper copiare la chiave ssh, quindi vai alle impostazioni di github ssh e aggiungila.

Ti consiglierò di usare sempre ssh. Per la maggior parte dei team con cui ho lavorato, non è possibile accedere al repository (che sono per lo più privati) tranne che per l'utilizzo di ssh. Per un principiante, potrebbe sembrare più difficile, ma in seguito lo troverai molto più semplice e sicuro.


3

Ho avuto questo problema e ho scoperto che il mio sistema era con un indirizzo DNS sbagliato. Verifica la tua rete e prova con

ssh -vvv git@bitbucket.org

E leggi i messaggi di output. Se vedi "Puoi usare git o hg per connetterti a Bitbucket." , va tutto bene.


ciao @Albert, sto affrontando lo stesso problema ma per gitlab.com. Come sei riuscito a risolvere il problema?
abiratsis

@AlexandrosBiratsis Sostituisco il mio dns con un altro indirizzo. Prova opendns o google dns.
albert

2

Un problema alternativo potrebbe essere la tua connessione Internet. Ovvio forse, ma mi ci sono voluti alcuni minuti per capire che il mio wifi non funzionava :)


1
Secondo il messaggio di errore, non sembra che la connessione Internet sia un problema qui.
jbmusso

2

Ecco come risolvo questo problema. Stavo usando Babun (mintty.exe) su Win7 / 10. Quando ho provato molte soluzioni sopra menzionate e nessuna di esse funziona. Mi sono reso conto che forse ho solo usato un agente ssh sbagliato ... Quindi corro echo $GIT_SSHper scoprirlo, mostra il percorso per Plink.exe. Quello che in realtà mi aspettavo è OpenSSH.

Quindi, aggiungo la seguente battuta a ~/.zshrc file

Nota 1: puoi eseguirlo direttamente in babun anche
Nota 2: se usi bash, il file di configurazione è.bashrc

export GIT_SSH=$(which ssh)

E funziona!



2

Prova https invece di ssh. Scegli l'opzione https dalla home page del progetto da cui copi l'URL del clone.


2

Se prima funzionava e improvvisamente ha smesso di funzionare:

Questo problema può essere causato perché a volte ssh-agentnon è persistente durante i riavvii. Dovresti controllare se ssh-agentè stata aggiunta la tua chiave:

ssh-add -l -E md5

se ottieni l'output come:

The agent has no identities.

significa che ssh-agentha perso la chiave. In tal caso, è sufficiente aggiungere nuovamente la chiave di identità. Qualcosa di simile a:

ssh-add ~/.ssh/git_rsa

L'errore dovrebbe scomparire ora!


Questo è successo a me quando ho creato un altro ssh per un account diverso, quindi aggiungo semplicemente il mancante git_rsanell'elenco
John

1

Questo può accadere anche se ti connetti al tuo repository git tramite una VPN. Assicurati di essere connesso alla VPN che viene utilizzata per accedere alle risorse della tua organizzazione.


1

Mi sono imbattuto in questo errore durante il caricamento del progetto su gitlab. Non ho clonato da git ma ho caricato il progetto. Per inviare il codice a gitlab hai due modi per utilizzare ssh o https. Se usi https devi inserire nome utente e password dell'account gitlab. Per spingere il tuo codice a git puoi usare il seguente.

Pushing to Git per la prima volta

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "email@example.com"

Il parametro -C è opzionale, fornisce un commento alla fine della tua chiave per distinguerla dagli altri se ne hai più. Questo creerà id_rsa (la tua chiave privata) e id_rsa.pub (la tua chiave pubblica). Passiamo la nostra chiave pubblica e manteniamo la nostra chiave privata - beh, privata. Nelle Impostazioni utente di Gitlab dovresti quindi aggiungere la tua chiave pubblica al tuo account , permettendoci finalmente di spingere.

Nella posizione del progetto (Directory) utilizzare il comando seguente

git init

Trasforma la directory corrente in un repository Git. Questo aggiunge una sottodirectory .git alla directory corrente e rende possibile iniziare a registrare le revisioni del progetto.

Push utilizzando il percorso https

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Spingere utilizzando il percorso ssh

git push --set-upstream git@gitlab.com:Account_User_Name/Your_project_Name.git master

- set-upstream: dice a git il percorso per origin. Se Git ha precedentemente eseguito il push sul tuo ramo corrente, ricorderà dove si trova l'origine

master : questo è il nome del ramo a cui voglio eseguire il push durante l'inizializzazione


0

Come altre risposte, utilizzare httpsinvece di sshera la soluzione.

Inserisco una risposta per dare un esempio concreto di una possibile soluzione. Ho risolto questo problema con bitbucket quando ho cambiato l'URL remoto in HTTPS con questa riga di comando:

git remote set-url origin <bitbucket_URL>

Dopodiché, potrei inviare il contenuto al repository con questo comando:

git push -u origin --all

E poi potrei anche usare Sourcetree


0

Stranamente ho ricevuto questo errore solo in uno dei miei numerosi repository.

Il mio problema era dopo l'installazione del nuovo GitHub Desktop per Windows in cui il precedente vecchio GitHub per Win conservava le chiavi ~/.ssh/github_rsae ~/.ssh/github_rsa.pubdove, come previsto dal nuovo GitHub per Win, ~/.ssh/id_rsala soluzione stava semplicemente rinominando le chiavi private e pubbliche esistenti:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Dopodiché fammi accedere di nuovo al repository senza problemi.


0

usa la tua origine https invece dell'URL ssh

esempio:

git remote add origin  https://gitlab.com/user/folder.git

0

Sto usando Ubuntu

dopo aver letto molte risposte, nessuna di esse può risolvere il problema, anche se ho già aggiunto la chiave SSH al mio account git, e provo a testarla usando ssh -T git@gitlab.come diceva Welcome <my username>, ma continuava a dirmi di non avere diritti di accesso. Poi ho scoperto che il motivo è:

Normalmente, se non sei un rootutente, ti sarà richiesto di eseguire sudoogni comando git.

durante la corsa sudo git clone <SSH....>(ad esempio). verrà eseguito sotto rootautorizzazione, ma accidentalmente quando creo la chiave SSH lo eseguo come utente normale e salvo la chiave ~/.ssh/id_rsa, risolve il percorso assoluto /home/username/.ssh/id_rsa. E quando lo fa sudo git clone ...cerca la chiave SSH in/root/.ssh/id_rsa

Perché ne sono sicuro. Per vedere dove git cerca la tua chiave SSH. Eseguire questo comando: sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Ti mostrerà dove cerca la tua chiave SSH.

Quindi la SOLUZIONE che suggerisco è:

Ricreare la tua chiave SSH (segui queste istruzioni ), MA esegui sudo sual primo passaggio, quindi dovresti stare bene.


0

L'aggiunta della chiave ssh ha funzionato per me. Puoi creare una chiave ssh con il comando ssh-keygen su mac. Dovresti essere in grado di vedere il menu Distribuisci chiavi su YourRepository> Impostazioni non dimenticare di selezionare Consenti accesso in scrittura opzione.

distribuire screenshot del menu chiavi


0

Un errore molto comune è stato fatto da me. Ho copiato usando il comando clip xclip -sel clip < ~/.ssh/id_rsa.pub, ma durante l'incollaggio nella casella di immissione della chiave GitHub, ho rimosso l'ultima nuova riga usando backspace, che in realtà ha cambiato la chiave pubblica.

Quindi, copia e incolla sempre la chiave pubblica ssh così com'è senza rimuovere l'ultima nuova riga.


0

Per me stavo avendo problemi con la VPN aziendale, dopo la disconnessione funzionava bene.

Controlla la connessione con GitHub usando il comando ssh -vvvT git@github.com


0

Il passaggio all'uso di https funziona. Prima passa a https piuttosto che alle chiavi ssh. git remote set-url origin

Quindi richiederà il nome utente e la password di git.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.