Git: autorizzazione negata (chiave pubblica) fatale - Impossibile leggere dal repository remoto. durante la clonazione del repository Git


153

Non riesco a clonare un repository Git e ottengo questo errore:

krishna.soni@KRISHNACHANDRAS /c/Projects $ git clone http://stage.abc.com:10088/pqr
http://<url>/<repository> Cloning into '<repository>'... fatal: could not read Username for 'http://<url>': No such file or directory

Ho letto Bitbucket, Windows e "fatale: impossibile leggere la password per" , ma ho ancora il problema.

Ho proceduto oltre ma ora sto riscontrando questo errore

sh.exe": chown: command not found

krishna.soni@KRISHNACHANDRAS /c
$ git clone ssh://krishna.sonipayu.in@stage.payupaisa.
/projects
Cloning into 'C:/projects'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

> krishna.soni@KRISHNACHANDRAS /c
>     $ git clone ssh:<url>
>     ts
>     Cloning into 'C:/projects'...
>     Permission denied (publickey).
>     fatal: Could not read from remote repository.

Please make sure you have the correct access rights

ed esiste il repository.


Sei sicuro che sia un repository git?
gravetii,

sì . Sono nuovo di Git, ricevendo questo errore durante la clonazione. Ho aggiunto e-mail e nome nel file di configurazione globale usando i comandi git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
KCS

Il motivo principale è che il repository non può riconoscere l'utente come git-server. Potresti accedere al server tramite ssh?
Малъ Скрылевъ,

Se qualcuno ha questo problema durante l'utilizzo di Github, segui i passaggi indicati qui: help.github.com/en/articles/… Ha funzionato per me.
Rounak,

Risposte:


69

Sembra un problema di autorizzazioni, non un problema di Windows 7.

La tua chiave ssh non è autorizzata - Permission denied (publickey).

Devi creare una chiave ssh pubblica e chiedere all'amministratore del repository Git di aggiungere la sshchiave pubblica

Informazioni su come eseguire questa operazione: il salvataggio del tasto ssh non riesce


27
Questo è strano. Il repository è pubblico e sto clonando il repository pubblico. Non sono sicuro del motivo per cui dovrei chiedere all'amministratore l'autorizzazione a clonare il suo repository pubblico ospitato su Github.
Shailen,

5
Sì, è falso, non è necessario chiedere nulla all'amministratore, è un problema con il git locale.
Ivan Castellanos,

3
Perché è difficile? Ci sono riuscito ma non è stato indolore.
Niklas R.,

9
Non è necessario autorizzare una chiave per i repository pubblici, basta usare il protocollo HTTPS: stackoverflow.com/a/33072867/1385678
Diego V

225

Per le persone che vengono qui che stanno solo cercando di ottenere il repository ma non si preoccupano del protocollo (ssh / https), potresti semplicemente voler usare https invece di ssh (se supportato).

Quindi, per esempio, usi

git clone https://github.com/%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

invece di

git clone git@github.com:%REPOSITORYFOLDER%/%REPOSITORYNAME%.git

6
Questo è il piano di fallback più appropriato se le autorizzazioni ssh non vengono risolte o si desidera saltare quella parte.
Wahib Ul Haq,

13
Questa risposta ha cambiato il meccanismo da ssha https. Non sta risolvendo il problema originale usando ssh per accedere al repository. Mi chiedo come questo possa continuare a essere votato come una buona risposta alla domanda. Le altre risposte in basso lo stanno risolvendo correttamente.
Armin,

3
Il problema originale è un novizio git che prova a clonare un repository. Se l'obiettivo è abbattere un repository pubblico, questa è la risposta efficace più rapida.
Vivek Chavda,

Grazie per avermi salvato dal suicidio. A proposito, questo può essere usato per un repository privato dato che hai il nome utente e la password.
BILL WAGNER il

81

Se ci sono ancora problemi con l'accesso dopo aver creato SSH e averlo aggiunto nel tuo account Bitbucket o ovunque, devi fare quanto segue nel terminale su GitBash, OSX o Linux:

# Lists already added identities (‘ssh keys’)
ssh-add -l

Quindi, se non vedi la tua chiave elencata, aggiungila con il seguente (sostituisci identitycon il suo vero nome):

# Add a new identity
ssh-add ~/.ssh/identity

Questo ha funzionato per me.


3
ssh-add ~/.ssh/identityerrore di ritorno/Users/lee/.ssh/identity: No such file or directory
sottovento il

14
Eseguendo "ssh-add" da "~ / .ssh" (e inserendo la passphrase per il mio file "~ / .ssh / id_rsa" quando richiesto) ho risolto il problema per me.
James Furey,

1
Sono stato in grado di estrarre il mio repository ma non di spingere senza farlo, evviva!
Dimitar Nestorov

La risposta di @james Furey mi ha aiutato il sourcetree a identificare l'URL ssh come un repository git.
Fan YSR il

2
ha funzionato per me ... dopo ore di sudorazione e di provare cose diverse. L'unica cosa è invece l'identità alla fine utilizzare il nome nel proprio sistema. Vai alla cartella .ssh eseguendo il comando cd nel terminale e quindi digitare il comando 'ls' nel terminale. E quindi riprodurre l '"identità" dal comando sopra con il proprio file. Vai al terminale sourcetree e: cd ~quindi cd .sshpoi ls(copia il nome senza estensione .pub) quindi (esegui questo comando)ssh-add ~/.ssh/(copied name)
Tejas

21

Ho affrontato lo stesso problema con GitHub . Ecco come risolverlo!

  1. Genera una chiave SSH sul tuo computer come descritto qui: Generazione di chiavi SSH .
  2. Accedi al tuo account GitHub : Login GitHub .
  3. Nel tuo account, aggiungi la chiave SSH appena generata: le chiavi SSH del mio account .
  4. Riprova al git cloneprogetto.

Ha funzionato come un incanto !!
Prakhar,

1
Ho usato questa risposta su 3 nuovi sistemi operativi negli ultimi 5 anni e ha funzionato perfettamente ogni volta.
kotoole,

Apparentemente High Sierra richiede all'utente di registrare la chiave nel file .ssh / config. El Capitan in qualche modo è riuscito senza di essa.
dsomnus il

14

Ho avuto questo problema su un Mac - mentre ho impostato correttamente SSH per accedere al mio repository Git, dopo il riavvio (e qualche volta il Mac era in stand-by), tutte le mie credenziali sono state rimosse. Apparentemente, per qualche motivo la chiave del pub è stata impostata su 644 che ne ha causato la rimozione dal portachiavi. Per leggere:

  • chmod 600 la chiave pubblica
  • ssh-add ~/.ssh/[your private key]- questo dovrebbe mostrare che l'identità è stata aggiunta. Il file chiave desiderato è quello senza estensione .pub.
  • ssh-add -l dovrebbe mostrarti l'identità appena aggiunta

modifica: apparentemente MacOS tende a rimuovere le chiavi - dopo aver scaricato l'aggiornamento High Sierra (ma non l'ho ancora installato) la mia chiave è stata rimossa e ho dovuto aggiungerla di nuovo tramite ssh-add


2
Questa soluzione è ancora accurata dopo aver aggiornato macOS High Sierra alla versione 10.13.1. In particolare, Sourcetree è stata l'app che ha risolto il problema quando ho cercato di inviare un commit a un repository remoto. I passaggi precedenti hanno risolto il problema per me.
Paul Bonneville,

Ho avuto questo problema con 10.13.4 e questa soluzione ha funzionato per me.
Andrew Ebling,

11

Ho anche affrontato lo stesso problema. Ho fatto quanto segue e ha funzionato per me:

  1. Genera chiavi dal client GIT GUI su Windows. Copia questa chiave negli Appunti.
  2. Apri il tuo account sul bitBucket/sito Web di Git e aggiungi questa chiave al tuo profilo. In questo modo, il server sa che sei un utente legittimo che accede da un sistema legittimo.
  3. Questo è tutto. Tutti i comandi push hanno funzionato per me d'ora in poi.

Questo mi ha aiutato a capire che avevo generato la mia RSA senza eseguire Git Bash come amministratore che ha inserito la mia chiave RSA nell'unità "h": oops:
tylerlindell il

7

Per me, quando volevo clonare dal mio repository, avevo notato lo stesso messaggio prima di "Autorizzazione negata (chiave pubblica) fatale: impossibile leggere dal repository remoto". La soluzione per il mio caso è di non usare sudo prima del clone .


Grazie mille @mustapha mi hai davvero risparmiato tempo.
Vinay Kumar,

7

Github (o Bitbucket) non riesce a trovare la tua chiave ssh nel loro server.

Aggiungi la tua chiave nelle impostazioni del tuo account.


6

Se generi una nuova chiave ssh pubblica e la inserisci in bitbucket o github e

non ha aiutato - prova a riavviare il PC . Mi ha aiutato !!


Grazie, questo era quello che dovevo fare anch'io.
Steph

Ho dovuto chiudere il terminale e aprirne uno nuovo per vederlo funzionare.
rahul

5

È necessario creare una nuova chiave ssh eseguendo ssh-keygen -t rsa.


Il riferimento @Joel Heroku è stato rimosso. Grazie
biniam

4

Ho ricevuto l'errore ...

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

... quando stavo provando a contattare da un prompt di Git Bash a Bitbucket dopo che il mio laptop è morto a causa di un cattivo aggiornamento di Windows 10 ed è stato ripristinato alle impostazioni di fabbrica. Avevo ripristinato tutti i miei file ssh da un backup.

La causa dell'errore si è rivelata una mancata corrispondenza nel nome del mio account di Windows dopo la ricostruzione del computer. Ho appreso che il file della chiave pubblica id_rsa.pubtermina con una stringa facilmente leggibile comprendente il nome del mio account di Windows seguito da un@ segno e quindi dal nome del computer.

Quando ho originariamente impostato il mio computer, ho creato il nome del mio account di Windows, inclusa la mia iniziale centrale, ma quando il mio computer è stato ripristinato alle impostazioni di fabbrica, il nostro nuovo ragazzo DevOps ha creato il nome del mio account senza la mia iniziale centrale.

Per risolvere il problema, ho semplicemente modificato il mio file di chiave pubblica id_rsa.pube rimosso l'iniziale centrale nel mio nome alla fine. Mi ero bloccato con lo stesso nome di computer, quindi andava bene. Ho copiato il contenuto del file negli Appunti di Windows. Ho quindi effettuato l'accesso a Bitbucket, sono andato su Impostazioni Bitbucket sotto il mio avatar e ho aggiunto una nuova chiave pubblica dove ho incollato i nuovi contenuti.

Al prompt di Git Bash, ho confermato che ora funzionava inserendo il comando ...

ssh -T git@bitbucket.org

... e ho ricevuto un messaggio di accesso.


4

In macOS / Linux (Ubuntu):

1. Per autenticare devi aggiungere la tua parte pubblica della tua coppia di chiavi SSH a bitbucket dalle impostazioni utente: Impostazioni utente -> Chiavi SSH

Troverai la suddetta parte pubblica nella tua directory ~ / .ssh, di solito id_rsa.pub. notare la .pubparte del nome del file per Pubblico. ti aiuterà a generarne uno se non ne hai già uno

Non hai ancora finito ...

2. Devi far sapere al tuo sistema quale chiave usare con quale host remoto, quindi aggiungi queste righe al tuo file ~ / .ssh / config

Host bitbucket.org
 IdentityFile ~/.ssh/PRIVATE_KEY_FILE_NAME

Dov'è PRIVATE_KEY_FILE_NAMEil nome della parte privata della tua coppia di chiavi SSH, se non l'hai incasinata, di solito il suo nome predefinito è: id_rsa in questo caso sostituisci PRIVATE_KEY_FILE_NAMEsopra con id_rsa(la chiave privata NON ha .pubestensione)


Nota, hai sbagliato a scrivere "Ubuntu" - le modifiche devono essere almeno 6 caratteri, quindi non posso suggerire la modifica :)
Misha Nasledov

4

Discussione utile e non porto molto nuovo sul tavolo. Il passo che ho fatto è anche parte della descrizione che Maxime indica utilmente, ma alcuni potrebbero ignorarlo. La sezione aggiunge la chiave SSH all'agente ssh .

Avevo già generato il mio ssh-key ma dopo un riavvio non sono riuscito a clonare uno dei miei repository.

Ho dovuto avviare l'agente ssh e aggiungere la chiave privata a questo agente per clonare.

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

3

Ho riscontrato lo stesso problema durante l'esecuzione del git clonecomando dalla riga di comando di Windows. Ma il comando viene eseguito correttamente da Git Bash .


3

Ho avuto il problema simile. Cambio i tasti SSH e riavviato e ho provato tutte le altre soluzioni 'n'. Ma il vero problema per me era il nostro protocollo predefinito di gitlab cambiato da ssh a https.

controlla l'URL remoto con

git remote -v

cambia l'URL remoto

git remote set-url origin https://URL

È perfetto, non è necessario configurare ssh.
Rohit Parte,

Ho dovuto fare lo stesso. La chiave ssh non funzionava per me in questo caso
Dani

fatale: impossibile accedere a " bitbucket.org:xxxxxx/xxxxxxxxt ": il numero di porta è terminato con "r"
nosequeweaponer

2

Se tutto fallisce, come è stato il mio caso, disinstallare GIT, reinstallare. Per qualche motivo questo risolve.

PS

  1. Ho provato a generare nuove chiavi e aggiornare alle chiavi pubbliche SSH
  2. Ho anche provato a cancellare tutte le chiavi e ho provato a creare una nuova chiave.
  3. E NO, niente di sbagliato nel mio .gitconfig

2

correzione per lo hubstrumento cli:

  • git config --global hub.protocol https a lungo termine
  • git remote add OOPS https://github.com/isomorphisms/go.git&& git push OOPSper una soluzione immediata

Questo errore si verifica con lo hubstrumento da riga di comando a causa del valore errato predefinito hub.protocolgit-config. Hanno impostato i repository su

git://github.com/schacon/ticgit.git

invece di ciò che Github accetta effettivamente, vale a dire https://github.com/schacon/ticgit.git.


La lettura LESS=+/"HTTPS instead" man hubspiegherà da dove proviene il comando "correzione a lungo termine" sopra.


Questo mi ha salvato la giornata!
Jay Lee,

1

Durante la clonazione, ho avuto un problema simile [il mio ERRORE: autorizzazione negata (chiave pubblica). fatale: impossibile leggere dal repository remoto. Assicurati di avere i diritti di accesso corretti .. ecc.]

- Nel mio caso utilizzavo bitBucket / UBUNTU14.04, ma già avevo un set di file chiave che avevo precedentemente generato E avevo cambiato il nome dei file. Ho semplicemente COPIATO i file nel formato standard id_rsa & id_rsa.pub. Ho quindi rieseguito il comando senza problemi.

OBTW : avrei anche potuto usare la richiesta della password usando il clone di stile HTTP.


0

Ho avuto un problema simile su Linux. Ho risolto il problema accedendo al server github e creando una chiave di distribuzione. Questo è nelle impostazioni per il repository. Quindi, ho copiato e incollato la mia chiave pubblica (che di solito è in ~ / .ssh / id_rsa.pub, ma la tua configurazione potrebbe essere diversa). C'è una casella di controllo per dare a questa chiave l'accesso in scrittura. Fare clic su di esso (a meno che non si stia utilizzando git solo per la distribuzione, nel qual caso non fare clic su di esso).


0

Ho avuto lo stesso errore. La mia soluzione era di disconnettersi e riconnettersi poiché il mio agente ssh non era più sincronizzato con il tasto ssh remoto.

Aggiungendo questo qui nel caso in cui qualcuno abbia visto che le altre risposte non sembrano applicarsi alla propria situazione.


0

Stavo affrontando lo stesso problema durante l'impostazione di ssh per gitlab. Ho già ssh per githube non ho potuto sovrascriverlo. I passaggi che hanno funzionato per me sono:

  1. Genera SSH con un nuovo percorso e aggiungilo all'elenco ssh ssh-add /path/to/new/id_rsa.
  2. Creare un file denominato configin ~/.ssh/uso. Ho usato vi ~/.ssh/config/.
  3. Aggiungi questo al file appena creato

# GitLab.com server Host gitlab.com RSAAuthentication yes IdentityFile /path/to/new/id_rsa

  1. Salva ed esci.

Dopo di che riavviare il terminale e provare a spingere, dovrebbe funzionare


0

Se desideri clonare progetti open source per inviare una richiesta pull:

Volevo clonare un progetto open source in modo da poter inviare alcune richieste pull. Il problema era che non avevo i permessi dal proprietario del progetto. Non importa, poiché la mia intenzione era di presentare un PR, ecco una valida alternativa:

La mia soluzione:

  1. Deposito di Fork

Fork Repo

  1. Quindi clona dal tuo repository biforcato. Clona da Repo biforcuta

  2. Lavora sulle tue funzionalità e poi invia una richiesta pull.


0

Puoi provare ad aggiungere la tua chiave ssh al tuo portachiavi privato. Ha funzionato per me

ssh-add -K ~/.ssh/[your-private-key]

"Opzione sconosciuta - K"
Jiří Doubravský

0

soluzione: sul server che si sta tentando di clonare o inviare da cat ~ / .ssh / id_rsa.pub Andare su GitHub, impostazioni, chiavi SSH e GPG , nuova chiave incolla chiave SSH .


0

Vedo che questo errore ha molte ragioni diverse. Ho avuto lo stesso errore durante il tentativo di configurare localmente un altro repository insieme a uno già funzionante con ssh ecc. E collegarlo allo stesso server, ma ad altri repository. Nessuna risposta era qui per essere trovata, ma l'ho capito. Quindi lo pubblico. Speriamo di aiutare qualcuno.

git remote add origin git@git.ourserver.com:teamalpha/repositorytwo.git

0

se nessuna di queste risposte aiuta e

  1. stai usando Windows
  2. generi la tua chiave con Putty o hai installato Putty sul tuo PC
  3. si genera la chiave con CMD o PowerShell

Provare

  1. cancella le tue chiavi
  2. cerca su Windows Git Bash, quindi genera una nuova chiave con la riga di comando di Git Bash
  3. aggiungi la chiave pubblica al tuo Repo online

Quindi, troverai dopo git clone e digita yes per confermare, dovrebbe iniziare a clonare


-2

Può essere stupido ma ci è successo:

Se stai usando bitbucket e Sourcetree e copi semplicemente incolla l'URL del clone nella nuova finestra di dialogo repo mostrerà lo stesso errore quando si tira o si spinge.

Assicurati di eliminare le cose 'git clone' prima dell'URL.

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.