828 Stimmen

Pushing zu Git mit Fehlercode 403 fatal: HTTP-Anfrage fehlgeschlagen

Ich war in der Lage, eine Kopie dieses Repos über HTTPS authentifiziert zu klonen. Ich habe einige Änderungen vorgenommen und möchte sie wieder auf den GitHub-Server übertragen. Mit Cygwin auf Windows 7 x64.

C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs

fatal: HTTP request failed

Richten Sie außerdem den ausführlichen Modus ein. Ich bin immer noch ziemlich verblüfft.

C:\cygwin\home\XPherior\Code\lunch_call>set GIT_CURL_VERBOSE=1

C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
  CApath: none
* SSL connection using AES256-SHA
* Server certificate:
*        subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
*        start date: 2011-05-27 00:00:00 GMT
*        expire date: 2013-07-29 12:00:00 GMT
*        subjectAltName: github.com matched
*        issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
*        SSL certificate verify ok.
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
< WWW-Authenticate: Basic realm="GitHub"
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host github.com left intact
* Issue another request to this URL: 'https://MichaelDrogalis@github.com/dereker
dmann/lunch_call.git/info/refs?service=git-receive-pack'
* Couldn't find host github.com in the _netrc file; using defaults
* Re-using existing connection! (#0) with host github.com
* Connected to github.com (207.97.227.239) port 443 (#0)
* 0x23cb740 is at send pipe head!
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

< HTTP/1.1 401 Authorization Required
< Server: nginx/1.0.4
< Date: Thu, 15 Sep 2011 22:44:41 GMT
< Content-Type: text/plain
< Connection: keep-alive
< Content-Length: 55
* Authentication problem. Ignoring this.
< WWW-Authenticate: Basic realm="GitHub"
* The requested URL returned error: 401
* Closing connection #0
* Couldn't find host github.com in the _netrc file; using defaults
* About to connect() to github.com port 443 (#0)
*   Trying 207.97.227.239... * 0x23cb740 is at send pipe head!
* Connected to github.com (207.97.227.239) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: C:\Program Files (x86)\Git/bin/curl-ca-bundle.crt
  CApath: none
* SSL re-using session ID
* SSL connection using AES256-SHA
* old SSL session ID is stale, removing
* Server certificate:
*        subject: 2.5.4.15=Private Organization; 1.3.6.1.4.1.311.60.2.1.3=US; 1.
3.6.1.4.1.311.60.2.1.2=California; serialNumber=C3268102; C=US; ST=California; L
=San Francisco; O=GitHub, Inc.; CN=github.com
*        start date: 2011-05-27 00:00:00 GMT
*        expire date: 2013-07-29 12:00:00 GMT
*        subjectAltName: github.com matched
*        issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=DigiCert High Ass
urance EV CA-1
*        SSL certificate verify ok.
* Server auth using Basic with user 'MichaelDrogalis'
> GET /derekerdmann/lunch_call.git/info/refs HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
User-Agent: git/1.7.4.3282.g844cb
Host: github.com
Accept: */*
Pragma: no-cache

* The requested URL returned error: 403
* Expire cleared
* Closing connection #0
error: The requested URL returned error: 403 while accessing https://MichaelDrog
alis@github.com/derekerdmann/lunch_call.git/info/refs

fatal: HTTP request failed

Dies sind die Versionen von git und curl, die ich habe:

C:\Users\XPherior>git --version
git version 1.7.4.msysgit.0

C:\Users\XPherior>curl --version
curl 7.21.7 (amd64-pc-win32) libcurl/7.21.7 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp
smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz

4 Stimmen

Sehen Sie sich den Kommentar an, der als Antwort veröffentlicht werden sollte. Ich habe es mit 1.7.1 zum Laufen gebracht, hatte auch das Problem mit der fehlenden Benutzer/Passwort-Eingabeaufforderung. Dank an stackoverflow.com/a/9575906/805284 ...

3 Stimmen

Prüfen, ob der Benutzer Lese-/Schreibzugriff auf das Repository hat

45 Stimmen

Fügen Sie in Zukunft nicht mehr "Authorization: Basic <stuff>" ein, wenn Sie Beispiele für http-Header anzeigen. Es ist einfach, das mit base64 zu dekodieren und dein Passwort zu bekommen. @mike: Wenn Sie Ihr Github-Passwort nicht geändert haben, seit Sie diese Frage gepostet haben, würde ich Ihnen empfehlen, dies zu tun.

46voto

Andrew Gans Punkte 620

Wenn Sie Windows verwenden, kann dies manchmal vorkommen, weil Windows die Anmeldeinformationen für externe Repos (in unserem Fall Github) in seinem eigenen Speicher speichert. Und die dort gespeicherten Anmeldeinformationen können sich von denen unterscheiden, die Sie gerade benötigen.

enter image description here

Um dieses Problem zu vermeiden, suchen Sie einfach Github in diesem Speicher und löschen Sie die gespeicherten Anmeldedaten. Danach wird Git beim Pushen Ihre Anmeldedaten abfragen und Ihnen das Pushen erlauben.

2 Stimmen

"Sie müssen möglicherweise den Windows-Anmeldemanager überprüfen und den Github-Eintrag unter control panel > user accounts > credential manager > Windows credentials > Generic credentials " Details aus diesem Beitrag: stackoverflow.com/a/37450495

0 Stimmen

Genaue Antwort (funktioniert bei mir perfekt)

33voto

zeeawan Punkte 6217

Gleicher Fehler und gleiche Lösung bei Mac OS X.

Alles funktionierte gut, bis ich eine neues Konto auf GitHub und versuchte, die

$ git push -u origin master

Und erhielt die Fehlermeldung:

entfernt: Berechtigung auf NEWUSER/NEWREPO.git für OLDUSER verweigert. fatal: Zugriff auf ' https://github.com/NEWUSER/NEWREPO.git/ ': Die angeforderte URL hat einen Fehler zurückgegeben: 403

Es sollte durch die Einstellung der user.name entweder für globale oder aktuelle repo behoben haben

$ git config –-global user.name NEWUSER
$ git config user.name NEWUSER

Aber das tat es nicht.

Ich habe das Problem behoben, indem ich den OLDUSER, der mit GitHub verknüpft ist, aus der Keychain Access-App gelöscht habe im Abschnitt Passwörter. Der Push-Befehl war dann erfolgreich.

$ git push -u origin master

Referenz

0 Stimmen

Das Löschen des OLDUSER aus der Keychain Access App hat bei mir funktioniert

1 Stimmen

Ich hatte den gleichen Fehler, allerdings aus einem anderen, aber verwandten Grund, der eine andere Lösung erforderte. Ich habe versucht, in ein Projektarchiv zu pushen, für das ich keine Schreibrechte habe (ich bin kein Mitarbeiter). Das lag eher daran, dass ich nicht wusste, wie ich zu einem Projektarchiv beitragen kann, das mir nicht gehört. Ich dachte, ich könnte einfach einen neuen Zweig erstellen und dann einen Pull Request stellen. Nicht so. Ich muss das Projektarchiv zuerst faken, meine Änderungen auf dem Fork vornehmen und dann eine Pull-Request von meinem Fork-Projektarchiv auf das ursprüngliche Projektarchiv stellen. Wahrscheinlich ein dummer Fehler meinerseits, aber wenn ich es schaffe, dann können es sicher auch andere N00bs :)

23voto

stevensagaar Punkte 628

Das funktioniert bei mir -:

git remote set-url origin https://username@github.com/user/repo.git

Ich hoffe, es hilft

1 Stimmen

Gute Arbeit. Benutzer einstellen!

1 Stimmen

Diese Lösung half mit git v1.7 in CentOS 6.10 x86. Ich hatte erwartet, dass das Passwort promopt auftaucht (anstelle des SSH-Schlüssels), und das tat es auch (durch Voranstellen von <username>@ vor github.com in der Remote-URL). Ich danke Ihnen!

20voto

neves Punkte 25455

Hier gibt es viele Antworten, aber das hier hat mein Problem gelöst.

Seit Juli 2020 müssen Sie Token-Authentifizierung für den Zugriff auf GitHub wenn Sie HTTPS verwenden.

Sie müssen also ein Zugangstoken zu generieren in Ihren Profileinstellungen und verwenden Sie es als Ihr Passwort. Aktivieren Sie die erforderlichen Kästchen, um in das Repository zu schreiben.

Fügen Sie nun Ihren Benutzernamen mit diesem Befehl zum Repo hinzu:

git remote set-url origin https://yourusername@github.com/user/repo.git

Wenn Sie versuchen, die Taste zu drücken, werden Sie nach Ihrem Passwort gefragt. Geben Sie Ihr neu generiertes Token ein.

Wenn Sie immer noch Probleme mit dem Pushen haben, verwenden Sie das Webinterface, um es als persönliches Repository zu forken, um ein Problem mit den Berechtigungen einzugrenzen. Ich werde in der Lage sein, mich darauf zu konzentrieren, das Autorisierungsproblem zu lösen.

19voto

nisah Punkte 2328

Ich glaube, @deepwaters hat die richtige Antwort für ältere Versionen. Die HTTPS-URL muss den Benutzernamen enthalten. Ich hatte Git 1.7.0.4 und git push origin master fragte nicht einmal nach einem Passwort, bis ich es hinzufügte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X