web-dev-qa-db-de.com

git: fatal: Konnte nicht aus dem entfernten Repository lesen

Ich versuche git mit http://danielmiessler.com/study/git/#website für die Verwaltung meiner Website einzurichten.

Ich habe den letzten Schritt in der Anleitung erhalten: git Push website + master: refs/heads/master

Ich arbeite mit der Befehlszeile von git ming32 in win7

$ git Push website +master:refs/heads/master
[email protected]***.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.

Ein Problem kann hier sein, dass das Programm nach [email protected]***.com sucht. Wenn ich mich per SSH mit meiner Site verbinde, habe ich einen anderen Benutzernamen (sagen wir 'abc'). vielleicht sollte dies [email protected]***.com sein. Wenn ja, weiß ich nicht, wie ich das ändern soll oder ob ich einen Alias ​​verwenden kann

255
user61629

Sie können den Benutzernamen angeben, den SSH an das Remote-System senden soll, als Teil der URL Ihrer Remote-Adresse. Geben Sie den Benutzernamen gefolgt von einem @ vor dem Remote-Hostnamen ein.

git remote set-url website [email protected]***.com:path/to/repo
100
rob mayoff

Stellen Sie sicher, dass Sie die richtige URL in .git/config haben.

url = [email protected]:username/repo.git

Wenn es Ihr erster Push ist, müssen Sie den korrekten Upstream einrichten

$ git Push -u Origin master

Sie können prüfen, welcher Schlüssel verwendet wird:

$ ssh -vvv [email protected]

Die Antwort sollte so etwas enthalten:

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

Es ist auch möglich, Regeln für ssh in ~/.ssh/config zu definieren, z. basierend auf Aliasnamen:

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

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

Sie können für jeden Alias ​​eine Verbindung zu verschiedenen Ports einrichten, einen anderen Benutzernamen usw. verwenden.

103
Tombart

Ihr SSH-Schlüssel wurde höchstwahrscheinlich vom SSH-Agenten entfernt

ssh-add ~/.ssh/id_rsa

dabei ist id_rsa ein mit git repo verknüpfter ssh-Schlüssel

93
Johnny Cage

Ich war vor einer Weile mit demselben Problem konfrontiert ... 

meine .git/config hatte 

url = [email protected]:manishnakar/polymer-demo.git

Ich habe es durch ersetzt 

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

und es funktioniert jetzt :) 

81
Manish Nakar

Entfernen Sie die Umgebungsvariable GIT_SSH mit unset GIT_SSH. Dies war die Ursache meines Problems.

22
Scott Lindner

Dies liegt normalerweise daran, dass der SSH-Schlüssel nicht mit der Fernbedienung übereinstimmt. 

Lösungen:

  1. Gehen Sie zum Terminal und geben Sie den folgenden Befehl (Mac, Linux) ein, der durch Ihre E-Mail-ID ersetzt wird.

    ssh-keygen -t rsa -C "[email protected]"

  2. Kopieren Sie den generierten Schlüssel mit folgendem Befehl ab Word ssh.

    cat ~/.ssh/id_rsa.pub

  3. Fügen Sie es in Github, Bitbucket oder Gitlab Ihrer Fernbedienung ein.
  4. Speichern Sie es.
10
Bastin Robin

Nach einigen Nachforschungen habe ich endlich eine Lösung dafür gefunden, Sie haben eine Umgebungsvariable zum plink.exe-Pfad deklariert. Wenn Sie diesen Pfad entfernen, öffnen Sie die Git-Bash erneut und versuchen Sie, über SSH zu klonen.

Siehe diesen Link

http://sourceforge.net/p/forge/site-support/2959/#204c

7

Ich hatte das gleiche Problem.

Dieser Fehler bedeutet, dass Sie den Ort der Remote-URL nicht angegeben haben, auf den der Code übertragen wird.

Sie können die Remote-URL auf zwei Arten einstellen (hauptsächlich):

  1. Geben Sie die Remote-URL über den Ausführungsbefehl in Git Bash an.

    • Navigieren Sie zu Ihrem Projektverzeichnis

    • Öffnen Sie Git Bash

    • Befehl ausführen: 

      • git remote set-url Origin <https://abc.xyz/USERNAME/REPOSITORY.git>
  2. Erwähnen Sie die Remote-URL direkt in der Konfigurationsdatei

    • Navigieren Sie zu Ihrem Projektverzeichnis

    • Wechseln Sie in den Ordner .git

    • Öffnen Sie die Datei config im Texteditor

    • Kopieren Sie die folgenden Zeilen und fügen Sie sie ein 

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

Für detailliertere Informationen besuchen Sie diesen link .

6
Pratik Patel

Stellen Sie sicher, dass der ssh-agent ausgeführt wird, indem Sie den folgenden Befehl auf Ihrem Terminal ausführen:

eval $(ssh-agent -s)

Quelle: Github-Dokumentation

5
user3362907

Ich hatte den gleichen Fehler. Die Lösung war folgende: Ich habe meine URL in .git/config..__ korrigiert. Die URL wurde einfach von HTTPS-Klonen kopiert. Das wäre so etwas:

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

Es funktionierte.

5
tan75

Wenn Sie Gitlab verwenden, müssen Sie sich möglicherweise anmelden und die neuen Bedingungen von Gitlab akzeptieren, bevor Sie versuchen, Pull oder Push auszuführen.

4

In Ihrer .git/config -Datei 

[remote "YOUR_APP_NAME"]
    url = [email protected]:YOUR_APP_NAME.git
    fetch = +refs/heads/*:refs/remotes/YOUR_APP_NAME/*

Und einfach

git Push YOUR_APP_NAME master:master 
2
user1982195

Wenn nach dem Befehl "git Push Origin master" der Fehler "aus Remote-Repository nicht lesen" angezeigt wird, probieren Sie es aus 

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 
2
sushmitha

Für meinen Fall verwende ich ein Firmennetzwerk (ohne Internetverbindung) im Büro. Um Code aus Github zu ziehen, setze ich https proxy in gitbash und verwende dann https anstelle von ssh, um Code zu ziehen. Wenn es jedoch zu Push-Code kommt, funktioniert der https-Proxy nicht. Daher kann entweder das Umschalten auf ein Internet-Netzwerk (mit Internetverbindung) oder ein Set-SSH-Proxy das Problem lösen.

2
wenwen

In meinem Fall verwendete ich einen ssh-Schlüssel mit einem Kennwort, um sich bei github zu authentifizieren. Ich hatte pageant in Windows nicht richtig eingerichtet (nur in cygwin). Die fehlenden Schritte waren das Verweisen der Umgebungsvariable git_ssh auf plink.exe. Außerdem müssen Sie github.com in den Plink known_hosts aufnehmen. 

   plink github.com
   y
   <then ctrl-c>

Hoffe das hilft!

Ich wünschte, Intellij hätte mir einen nützlicheren Fehler gegeben oder mich noch besser gebeten, das SSH-Passwort einzugeben.

2
Jeff Hoye

Ich hatte einen tadellosen Arbeitsgit und plötzlich bekam ich diesen Fehler, als ich versuchte, zum Meister zu schieben. Wie ich herausfand, lag es daran, dass der Repository-Host Probleme hatte.

Wenn Sie GitHub oder Bitbucket verwenden, können Sie den Status einfach überprüfen

https://status.github.com/messages oder https://status.bitbucket.org/

 enter image description here

1
Adam

Nach meiner Erfahrung liegt einer der Gründe dieses Problems ist aufgetreten daran, dass Sie eine instabile Internetverbindung haben .

1
Marwan Salim

Eine andere Problemumgehung: 

Manchmal passiert mir das wegen Netzwerkproblemen. Ich verstehe das Wurzelproblem nicht vollständig, aber der Wechsel zu einem anderen Subnetz oder die Verwendung von VPN löst es

1
kip2

Ich hatte das gleiche Problem und nach einer Weile sah ich, dass ich unter root-Benutzer (mit Sudo -s) war. Möge dies für jemanden helfen.

1
Jean-Luc Barat

Eigentlich habe ich viele Dinge ausprobiert, um Win7 zum Laufen zu bringen, seit ich die SSH-Version von native in Build-it und rückwärts und den gleichen Fehler geändert habe "Datei als:

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

und es hat endlich funktioniert. Vielleicht könnte es auch für Sie funktionieren.

1

Wenn immer noch derselbe Fehler auftritt, stellen Sie bitte sicher, dass in den Git-Einstellungen-> Registerkarte "ssh "-> Zu verwendender ssh-Client auf openSSH - eingestellt ist. enter image description here

0
Anil Kumar B

Für die, die dieses Problem auf einem privaten Fernrepo haben. Stellen Sie sicher, dass Sie die Xcode-Vereinbarung auf dem Remote-Server akzeptiert haben: Wir haben Wochen gebraucht, um dieses Update zu finden

Verwenden Sie diesen Befehl über die Befehlszeile: Sudo xcodebuild -license

Ich würde empfehlen, alle Fernbedienungen zu überprüfen, die Sie mit git remote -v konfiguriert haben. Wenn Sie Ihr Repo für eine gelöschte Fernbedienung konfiguriert haben, wird diese Fehlermeldung angezeigt: fatal: Could not read from remote repository. Please make sure you have the correct access rightsand the repository exists. Auch wenn Sie versuchen, eine andere (vorhandene) Fernbedienung zu verwenden. Wenn Sie also eine Fernbedienung haben, die gelöscht wurde, können Sie sie mit git remote remove name-of-remote-to-remove entfernen. Danach können Sie ohne Probleme Push oder Pull auf Ihre vorhandenen Remotes setzen.

0
Miguel Salas

In meinem Fall war es der Postbuffer ..

git config --global http.postBuffer 524288000

Zu Referenzzwecken lesen Sie: https://Gist.github.com/marcusoftnet/1177936

Ich hatte dieses Problem mit gitbash unter Windows 10. Ich habe verschiedene Dinge versucht, um dieses Problem zu lösen. Die wichtigsten sind:

  1. Neuerstellung meiner SSH-Schlüssel und Aktualisierung auf Bitbucket. Hat nicht geholfen
  2. Aktivierte das Debuggen mit this und stellte fest, dass ich "Shell request failed on channel 0" als gefragt erhielt here
  3. Starte meinen Windows-PC neu

Nichts von alledem hat geholfen. Am Ende habe ich Git für Windows neu installiert. Im Vergleich zu anderen Dingen, die ich gemacht habe, dauerte dies nur ein paar Minuten und löste das Problem!

0
user3885927

Ich habe dieses Problem gelöst, indem Sie das Terminal neu starten (ein neues Fenster/eine neue Registerkarte öffnen).

Wenn Sie also das zugrunde liegende Problem nicht wirklich verstehen wollen/müssen, ist die Testmethode einen Versuch wert, bevor Sie sich näher damit befassen :)

0
mraxus

Zusätzlich zu "Ich hatte das gleiche Problem und ...", verwende ich auch git via Ming32 (git bash) Shell in Windows.

In meinem Fall muss ich beim Repo ein Kennwort eingeben, ohne den SSH-Schlüssel zu verwenden, aber es war not, um das Kennwort einzugeben. Ich sagte nur "fatal: konnte nicht lesen ..." mit plink und ssh und hatte beide bekannten Host-Schlüssel gesetzt.

Ich habe die meisten Empfehlungen hier und in anderen SOs ausprobiert.

Ich fand am Ende es funktionierte gut in Powershell , aber nicht in git bash, ohne Änderungen oder Korrekturen.

0
scipilot

Ich stand vor demselben Problem. Sie können dies einfach in Ihrem Befehlsfenster ausführen:

git Remote hinzufügen Origin https: // Ihr/Repository/URL

0
Jsa

Ich bekam dieses Problem zeitweise, wobei es die meiste Zeit keine Fehlermeldung gab. Die Lösung für mich war, LDAP korrekt zu konfigurieren, nachdem sich die IP-Adresse meines LDAP-Servers geändert hatte.

Die /etc/gitlab/gitlab.rb-Konfiguration für LDAP zeigte auf eine nicht vorhandene IP-Adresse, und so wurde das Problem behoben, indem der Host so geändert wurde, dass er auf den richtigen Hostnamen für den LDAP-Server zeigte.

Verwenden Sie zum Diagnostizieren des Problems den Befehl gitlab-ctl tail, um Stacktraces zu finden. Für mich habe ich diesen Stacktrace gefunden:

==> /var/log/gitlab/gitlab-Rails/production.log <==

Net::LDAP::Error (No route to Host - connect(2) for 10.10.10.12:389):
  /opt/gitlab/embedded/lib/Ruby/gems/2.3.0/gems/net-ldap-0.16.0/lib/net/ldap/connection.rb:72:in `open_connection'
...

Nehmen Sie die Änderungen am Host-Wert in /etc/gitlab/gitlab.rb vor.

gitlab_Rails['ldap_servers'] = YAML.load <<-'EOS'
   main: 
     label: 'My LDAP'
     # this was an IP address
     # Host: '10.10.10.12'
     Host: 'internal-ldap-server' # this is the fix
     port: 389

Stellen Sie nach dem Ändern der obigen Konfigurationsdatei sicher, dass Sie gitlab neu konfigurieren

gitlab-ctl reconfigure
0
activedecay

Ich habe diesen Fehler nach einem Computerwechsel erhalten. Ich verwende SourceTree mit Bitbucket.

Also musste ich den von SourceTree erzeugten SSH-Schlüssel auf dem neuen Computer unter Bitbucket-Einstellungen> Sicherheit> SSH-Schlüssel hinzufügen, während ich mit meinem Bitbucket-Konto im Web verbunden war.

0
eby

Gehen Sie zum MINGW32-Terminal, und fügen Sie den folgenden Befehl ein: git branch --set-upstream-to = Origin/(Zweigname)

0
Juned Ahmed
[email protected]:/etc/nginx$ cat .git/config 
...
[remote "Origin"]
    url = [email protected]:user/.git
    fetch = +refs/heads/*:refs/remotes/Origin/*
...

  1. Verwenden Sie ssh anstelle von https.
  2. Ssh key in git verwenden (add ssh key).
  3. Wenn Sie root sind, verwenden Sie die SSH-Taste.

$ Sudo ssh-keygen
$ cat /root/.ssh/id_rsa.pub 

$ git init
$ git add file
$ git commit -m "add first file"
$ git remote add Origin [email protected]:user/example.git 
$ git Push -u Origin master
0

Ich habe alles versucht, einschließlich des Generierens eines neuen Schlüssels, Hinzufügen zum Github-Konto, Bearbeiten von .ssh/config und .git/config . Aber es gab mir immer noch den gleichen Fehler. Dann habe ich folgenden Befehl ausprobiert und es funktioniert erfolgreich. 

ssh-agent bash -c ssh-add ~/.ssh/id_rsa; git clone [email protected]:username/repo.git'
0
Chetan Pangam

Achten Sie bei der Verwendung von PuTTY/pageant darauf, dass Sie nicht vergessen, den korrekten SSH-Schlüssel zu pageant hinzuzufügen. DUH 

0
mashup

ich wollte nur mitteilen, dass ich eine einfache Lösung dafür gefunden habe:

Zugriff verweigert . Fatal: Lesen aus dem Remote-Repository nicht möglich . Stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben

einfach von gitlab abmelden und wieder anmelden. Die Probleme sollten dann behoben sein.

0
nechama b

Ich habe diese Fehlermeldung erhalten, als ich versuche, Code von der Arbeit zu meinem persönlichen Git zu pushen. Also folgte ich diesen Schritten:

  1. Ging zu meinem persönlichen Git-Konto und erstellte Repo mit Standardeinstellungen
  2. Git remote auf dem Terminal füge Origin [email protected] hinzu: /. Git
  3. git Push --set-upstream Origin Master stellt sicher, dass Origin upstream ist und die nächsten Commits nur mit git Push ausgeführt werden können.

Aus irgendeinem Grund funktionierte kein anderer Weg für mich. Hoffe, das hilft jemandem, der mit 2 oder mehr Git-Konten arbeitet.

0
novembersky

Ich hatte den gleichen Fehler, der mich zu dieser Antwort brachte, die mir nicht geholfen hat. Ich versuchte, zum ersten Mal ein neues "nacktes" Repository zu erstellen.

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

Es stellte sich heraus, dass mein Problem die Verwendung der hinteren Schrägstriche anstelle von Schrägstrichen am NTFS-Speicherort war, wenn versucht wurde, Origin hinzuzufügen, um den (neuen) verfolgten Upstream-Zweig festzulegen.

Ich musste den Origin mit folgendem entfernen:

git remote rm Origin

Fügen Sie dann den Ursprung erneut mit den erwarteten Schrägstrichen hinzu

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

Hoffe das hilft jemand in der Zukunft.

0
Mike