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.

3voto

venkat sam Punkte 148

Fügen Sie den Benutzernamen als Teil der URL hinzu. Dieser Fehler tritt auf, weil der Git-Befehl auf http statt auf https zugreift. Setzen Sie also die Url

git remote set-url origin https://<username>@github.com/Path_to_repo.git

Danach werden Sie zur Eingabe eines Passworts aufgefordert:

3voto

Faisal Punkte 4304

Versuchen Sie den folgenden Befehl mit Administratorrechten. Dieser Befehl hat mein Problem gelöst. Ich hoffe, dass er auch Ihr Problem lösen wird.

git config --system --unset-all credential.helper

0 Stimmen

Dieser Befehl setzt alle Benutzeranmeldeinformationen zurück. Und lässt den Benutzer die Benutzerkennung und das Token erneut eingeben. In meinem Fall wurde das Problem auf diese Weise gelöst. Ich war in einem anderen Git-Konto angemeldet.

3voto

patcon Punkte 1667

Für alle Neugierigen, meine Mac-Maschine vs lucid vm lief Git 1.7.6 vs 1.7.0.4, und die genaue gleiche Repo war pushable von meinem Mac (neuere Git), aber nicht die VM

Dieselbe Lockenversion. Vielleicht unterstützen einige ältere Git-Versionen keine https-Pushes?

0 Stimmen

Ja, https-Push zu Github funktioniert hier (auch über Proxy mit Passwort). Ich verwende Git 1.7.3. Für mich, es scheiterte zunächst, weil ich das falsche Passwort eingegeben.

10 Stimmen

Bei mir funktioniert es mit git 1.7.1, aber es gibt eine Sache, auf die man achten muss (und das war es, was ich bei meinem ersten Versuch übersehen habe): Man muss den Benutzernamen in der HTTPS-URL angeben, d.h. url=https://username@github.com/username/repo.git

2voto

Md Rehan Punkte 164

Für Windows Gehen Sie zu "Bedienfeld \User Konten \Credential Manager" und entfernen Sie den in der Abbildung gezeigten Eintrag und fügen Sie Benutzername/Passwort hinzu.

Credential Manager

2voto

AndyL Punkte 13674

Github hat eine Seite, die sich mit der Behebung dieses Fehlers beschäftigt:

https://help.github.com/articles/https-cloning-errors

In meinem Fall stellte sich heraus, dass die Verwendung einer neuen Version von git (1.8.5.2) dieses Problem löste.

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