git: fatal: impossibile leggere dal repository remoto


356

Sto cercando di configurare git con http://danielmiessler.com/study/git/#website per gestire il mio sito.

Sono arrivato all'ultimo passaggio delle istruzioni: git push website + master: refs / heads / master

Sto lavorando usando la riga di comando git ming32 in win7

$ git push website +master:refs/heads/master
Bill@***.com's password:
Connection closed by 198.91.80.3
fatal: Could not read from remote repository.

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

Un problema qui potrebbe essere che il programma sta cercando Bill@***.com. quando mi connetto via ssh al mio sito ho un nome utente diverso (diciamo 'abc'). quindi forse questo dovrebbe essere abc@***.com. Se è così, non so come cambiarlo o se posso spingere sotto un alias


1
Ho avuto lo stesso problema, a volte questo errore si verifica quando il server git non è raggiungibile o ha qualcosa come "errore interno del server".
Morteza Ziyae,

2
Per prima cosa, guarda il .git/configfile e vedi che tutto è in ordine. Aveva valori errati di set-url e origin per me.
mixdev,



puoi mostrarmi il corretto ordine di .git / config e anche il .ssh / config ... coz sono confuso abit dura.
Gumuruh,

Risposte:


134

È possibile specificare il nome utente che SSH deve inviare al sistema remoto come parte dell'URL del telecomando. Inserisci il nome utente, seguito da un @, prima del nome host remoto.

git remote set-url website abc@***.com:path/to/repo

3
ps, c'è un modo per aggiungere la password così non continuo a digitarla?
LDN

15
modifica il file .git/configche ha il parametro url remoto
Sayanee

@ user61629: So di essere in ritardo alla festa, ma dovresti considerare l'utilizzo di coppie di chiavi private / pubbliche anziché le password.
code_dredd,

Quale nome utente? Nome utente del computer o nome utente github?
Agente Zebra,

11
Per Github, usi sempre il nome utente git. Esempio: git@github.com:mayoff/uiimage-from-animated-gif.gitGithub capisce la tua identità guardando quale chiave SSH invii.
Rob Mayoff,

190

Molto probabilmente la tua chiave ssh è stata rimossa dall'agente ssh

ssh-add ~/.ssh/id_rsa

dove id_rsa è una chiave ssh associata a git repo


7
Questo ha funzionato per me! Ho impiegato molto tempo a provare a configurare il mio file ~ / .ssh / config per utilizzare chiavi diverse per host diversi, pensando che questo fosse il problema. Alla fine, doveva aver usato la chiave giusta per l'host giusto, ma quella chiave era stata "rimossa". così ssh-add ~/.ssh/theKeyInQuestionmi ha fatto tornare indietro e funzionante con questo repository, non conoscevo la chiave rimossa, o cosa significa "rimosso", ma almeno sono stato in grado di ottenere nuovamente l'autenticazione. SSH è un mistero per me anche dopo mesi di gestione dei problemi di autenticazione. problemi dell'agente ssh sono un'altra cosa di cui essere consapevoli!
Alex Bollbach,

Grazie mille .. Alla fine ha funzionato per me dopo aver provato a creare, eliminare, ecc. Le chiavi SSH nel mio account GitLab .... Grazie !!
Bms bharadwaj,

Questo ha risolto il mio problema. Ho già aggiunto la chiave ssh appena generata sul server. Questa chiave deve essere aggiunta !!
Kashan,

1
Questo mi ha risolto, non capisco perché .. Funzionava e all'improvviso no, esiste un processo che rimuove la chiave dall'agente, può succedere per caso?
Miguel Stevens,

Perché succede? Ha funzionato tutto il giorno ma la sera ha smesso di funzionare. Questa risposta ha aiutato.
Andrey Semakin,

130

Assicurati di avere l'URL corretto .git/config

url = git@github.com:username/repo.git

Se è la tua prima spinta, dovrai impostare l'upstream corretto

$ git push -u origin master

Puoi controllare quale chiave è utilizzata da:

$ ssh -vvv git@github.com

La risposta dovrebbe contenere qualcosa del genere:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: ~/.ssh/id_rsa
...
You've successfully authenticated, but GitHub does not provide shell access.

Inoltre è possibile definire regole per ssh in ~/.ssh/config, ad esempio in base agli alias:

   Host github
      HostName github.com 
      User git
      IdentityFile "~/.ssh/id_rsa"

   Host git
      HostName github.com 
      User git
      IdentityFile "~/.ssh/some_other_id"

È possibile impostare la connessione a porte diverse, utilizzare un nome utente diverso ecc. Per ciascun alias.


1
Grazie!! Ad un certo punto quando ho clonato il mio repository, è urlstato impostato su https://github.com/user/repo.git(senza git@github.com) e quindi si è rifiutato di utilizzare la mia chiave SSH. Forse è perché l'ho clonato usando inizialmente GIthub per Windows (?)
Jedidja,

Ho dovuto cambiare url = ssh://github.com/RaphaelBossek/dev-atlassian-jira-proman.gitper url = ssh://git@github.com/RaphaelBossek/dev-atlassian-jira-proman.gite ha funzionato ancora una volta
Raphael Bossek

Dannazione, sei fantastica. Ho provato tante altre soluzioni. Il mio URL era https: pure :(
agrublev

Il -vvvsuggerimento è stato utile per me. Ora vedo che sta dicendo "Connessione chiusa dalla porta 22. XXX.XXX.XXX.X".
Ryan,

Ahhh, DeployHQ afferma che "BitBucket sta attualmente riscontrando problemi di servizio minori. Per maggiori informazioni, controlla la sua pagina di stato. Status.bitbucket.org " Bingo.
Ryan,

123

Stavo affrontando lo stesso problema qualche tempo fa ...

il mio .git / config aveva

url = git@github.com:manishnakar/polymer-demo.git

L'ho sostituito con

url = https://github.com/manishnakar/polymer-demo.git 

e funziona ora :)


8
in che modo questo non è classificato più in alto? git @ github non funziona assolutamente per me
hlitz,

3
Se il proprietario del repository non ha impostato le sshchiavi, probabilmente avrai questo problema. La correzione come indicato è httpsinvece utilizzare o impostare il proprietario del repositoryssh
RyanNerd,

@smileham commuta il collegamento distante con il repository da un'autorizzazione basata su SSH a un protocollo https (se richiesto richiederà usr / pwd)
Vincent Chalmel,

questa è la risposta corretta, ha funzionato all'istante per me.
Kingston Fortune,

Per chiunque abbia git remote set-url ...sbagliato come me O che ha follemente un alfabeto maiuscolo nel loro nome utente (ad esempio PeDro) come me (!) Dovrebbe seguire questo. Ha funzionato :)
Pe Dro

23

Prova a rimuovere la variabile di ambiente GIT_SSH con unset GIT_SSH. Questa è stata la causa del mio problema.


1
Funziona .. Mi chiedo da dove ho ottenuto la variabile d'ambiente GIT_SSH da :)
StrangeLoop,

1
Per windows rimuovere la variabile d'ambiente GIT_SSH dal menu delle opzioni avanzate. Ha funzionato per me.
splintercell

Come? Cosa scrivo nel terminale per farlo?
Agente Zebra,

17

Assicurati che ssh-agent sia in esecuzione eseguendo il seguente comando sul tuo terminale:

eval $(ssh-agent -s)

Fonte: documentazione Github


Questo risolve un problema anche per me. Grazie
Ahmad,

Questo ha risolto anche per me. C'è qualcosa che dovrei fare per assicurarmi che funzioni in futuro? Come metterlo come una voce nel mio .zshrcfile?
Brady Dowling il

14

Questo di solito è causato dal fatto che la chiave SSH non corrisponde al telecomando.

soluzioni:

  1. Vai al terminale e digita il seguente comando (Mac, Linux) sostituisci con il tuo ID e-mail.

    ssh-keygen -t rsa -C "tu@email.com"

  2. Copia la chiave generata usando il seguente comando a partire dalla parola ssh.

    cat ~ / .ssh / id_rsa.pub

  3. Incollalo in github, bitbucket o gitlab rispettivamente sul tuo telecomando.
  4. Salvarlo.

9

Ho avuto lo stesso problema.

Questo errore indica che non hai specificato la posizione dell'URL remoto su cui verrà inviato il codice.

Puoi impostare l'URL remoto in 2 (principalmente) modi:

  1. Specifica l'URL remoto tramite l'esecuzione del comando su Git Bash.

    • Passare alla directory del progetto

    • Apri Git Bash

    • Esegui comando:

      • git remote set-url origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Indica l'URL remoto direttamente nel file di configurazione

    • Passare alla directory del progetto

    • Passa alla cartella .git

    • Apri il file di configurazione nell'editor di testo

    • Copia e incolla sotto le righe

      • [remote "origin"] url = https://abc.xyz/USERNAME/REPOSITORY.git fetch = +refs/heads/*:refs/remotes/origin/*

Per informazioni più dettagliate visita questo link .



7

Ho avuto lo stesso errore. La soluzione era la seguente: ho corretto l'URL in .git/config. L'ho appena copiato dall'URL del clone HTTPS. Sarebbe qualcosa del genere:

url = https://github.com/*your*git*name*/*your*git*app*.git

Ha funzionato.


se l'ho scritto sul mio file di configurazione sotto il sistema operativo Windows, l'errore si presentava in modo diverso, diceva ... "/c/Users/asus/.ssh/config: riga 5: Opzione di configurazione
errata

usare https su ssh funziona bene, richiede nome utente e password
Kiran il

4

Un'altra soluzione alternativa:

A volte questo mi succede a causa di problemi di rete. Non capisco completamente il problema di root, ma il passaggio a un'altra sottorete o l'utilizzo di VPN lo risolve


Esattamente il mio caso. Vorrei aver letto questo commento. Dopo alcune ore di debug, ho pensato di utilizzare VPN e ha funzionato.
Chaitanya Bapat,

4

Se usi Gitlab di quanto potresti aver bisogno di accedere e accettare nuovi termini Gitlab, prima di provare a estrarre o spingere.


Perché il downvote? Lo stesso giorno ho risolto il mio problema, aveva qualcosa a che fare con i nuovi termini gitlab.
Marcelo Agimóvel,

Rimuovi il tuo voto negativo. Questa è una risposta valida, è successo dopo la modifica dei termini di gitlab. Accettare nuovi termini di Gitlab potrebbe risolvere il problema.
Marcelo Agimóvel,

3

Nel tuo file .git / config

[remote "YOUR_APP_NAME"]
    url = git@heroku.com:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

E semplicemente

git push YOUR_APP_NAME master:master 

3

Nel mio caso stavo usando una chiave ssh con una password per autenticarmi con github. Non avevo impostato correttamente lo spettacolo in Windows (solo in Cygwin). I passaggi mancanti consistevano nel puntare la variabile d'ambiente git_ssh su plink.exe. Inoltre, devi inserire github.com nel plink known_hosts.

   plink github.com
   y
   <then ctrl-c>

Spero che sia di aiuto!

Spero davvero che Intellij mi avrebbe dato un errore più utile, o meglio ancora mi ha chiesto di digitare la password della chiave ssh.


3

Ho avuto una chiave privata ssh sbagliata per Bitbucket insieme a quella giusta nell'agente ssh.

Prima cancellati tutti i tasti

ssh-add -D

Quindi ha aggiunto la chiave giusta.

ssh-add ~/.ssh/id_rsa

2

Nel mio caso, sto usando la rete aziendale (senza connessione a Internet) in ufficio. Per estrarre il codice da github, ho impostato il proxy https in gitbash e quindi uso https invece di ssh per estrarre il codice, funziona benissimo. Tuttavia, quando si tratta di push code, il proxy https non funzionerà. Quindi o passare alla rete Internet (con connessione a Internet) o impostare il proxy ssh può risolvere il problema.


2

In realtà ho provato un sacco di cose per farlo funzionare su Win7, da quando ho cambiato il SSH exectun da nativo a build-it e indietro e lo stesso errore. Per caso, lo cambio in HTTPS nel file ".git / config" come:

[remote "origin"]
        url = https://github.com/user_name/repository_name.git
        fetch = +refs/heads/*:refs/remotes/origin/*

e alla fine ha funzionato. Quindi forse potrebbe funzionare anche per te.


2

Ho avuto lo stesso problema e dopo un po 'ho visto che sono un utente root (con sudo -s). Possa questo aiuto per qualcuno.


Confermo che anche quando hai impostato il tasto ssh sul tuo computer e su BitBucket, questo errore mostrerà comunque questo errore se provi a eseguire 'git pull' con un comando 'sudo'.
ElectroBuddha,

2

Se dopo il comando "git push origin master" vedi l'errore "impossibile leggere dal repository remoto", prova questo

1.ssh-keygen -t rsa -b 4096 -C "youremail"
2.eval $(ssh-agent -s)
3.ssh-add ~/.ssh/id_rsa
4.clip < ~/.ssh/id_rsa.pub(it copies the ssh key that has got generated)
5.then go to your remote repository on github and goto settings-> SSH and GPG keys ->new SSH key ->enter any title and paste the copied SSH key and save it
6. now give git push origin master 


1

Ho avuto lo stesso errore, che mi ha portato a questa risposta che non mi ha aiutato. Stavo cercando di creare un nuovo repository "bare" per la prima volta utilizzando i comandi seguenti per tracciare in un percorso NTFS:

cd myrepository
git init --bare \\myserver.mycompany.local\myrepository.git
git init
git status
git add .
git status
git commit -m "Initial Commit"
git remote add origin \\myserver.mycompany.local\myrepository.git
git push -u origin master
git status

Il mio problema si è rivelato utilizzare le barre rovesciate invece delle barre rovesciate nella posizione NTFS quando si tenta di aggiungere l'origine per impostare il (nuovo) ramo a monte monitorato.

Ho dovuto rimuovere l'origine usando:

git remote rm origin

Quindi aggiungere nuovamente l'origine utilizzando le barre in avanti previste

git remote add origin //myserver.mycompany.local/myrepository.git

Spero che questo aiuti qualcuno in futuro.


1

Ho questo errore dopo aver cambiato computer. Sto usando SourceTree con Bitbucket.

Quindi ho dovuto aggiungere la chiave SSH generata da SourceTree, sul nuovo computer, in Impostazioni Bitbucket> Sicurezza> Chiavi SSH, mentre ero connesso al mio account Bitbucket sul web.


1

Ho risolto questo problema riavviando il terminale (apri una nuova finestra / scheda).

Quindi, se non vuoi davvero / hai bisogno di capire il problema di fondo, vale la pena provare il metodo di prova prima di scavare più a fondo :)


0

Per coloro che hanno questo problema su un repository remoto privato. assicurati di aver accettato l'accordo Xcode sul server remoto: ci sono volute settimane per scoprire questa soluzione

Utilizzare questo comando dalla riga di comando: sudo xcodebuild -license


0

volevo solo condividere che ho trovato una soluzione semplice per questo:

Accesso negato. fatale: impossibile leggere dal repository remoto. Assicurarsi di disporre dei diritti di accesso corretti e che il repository sia presente.

basta disconnettersi da gitlab e accedere nuovamente. I problemi dovrebbero quindi essere risolti.


0

Quando si utilizza putty / pageant, assicurarsi di non aver dimenticato di aggiungere la chiave SSH corretta al concorso, altrimenti verrà visualizzato questo errore. DUH



0

Vai al terminale MINGW32 metti questo comando: git branch --set-upstream-to = origin / (nome ramo)


0

Se stai ancora riscontrando lo stesso errore, assicurati che nelle impostazioni git-> scheda ssh- > il client ssh da usare sia impostato su openSSHinserisci qui la descrizione dell'immagine


0

Secondo la mia esperienza, uno dei motivi per cui si è verificato questo problema è perché hai una connessione Internet instabile .

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.