Ich konnte eine Kopie dieses Repos über HTTPS authentifiziert klonen. Ich habe einige Commits gemacht und möchte wieder auf den GitHub-Server zugreifen. Verwenden von Cygwin unter Windows 7 x64.
C:\cygwin\home\XPherior\Code\lunch_call>git push
Password:
error: The requested URL returned error: 403 while accessing https://MichaelDrog
[email protected]/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
Richten Sie es auch im 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://[email protected]/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
[email protected]/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
Antworten:
Ich habe gerade das gleiche Problem und habe gerade herausgefunden, was die Ursache ist.
Github scheint nur die SSH-Methode zum Lesen und Schreiben des Repos zu unterstützen, obwohl die https-Methode auch "Lesen und Schreiben" anzeigt.
Sie müssen also Ihre Repo-Konfiguration auf Ihrem PC auf ssh ändern:
.git/config
Datei in Ihrem Repo-Verzeichnisurl=
Eintrag unter Abschnitt[remote "origin"]
url=https://[email protected]/derekerdmann/lunch_call.git
zuurl=ssh://[email protected]/derekerdmann/lunch_call.git
. Ändern Sie also alle Texte vor dem@
Symbol inssh://git
config
Datei und beenden. Jetzt können Siegit push origin master
Ihr Repo auf GitHub synchronisierenquelle
.git/config
war eher wieurl=https://github.com/mynickname/my_repo.git
Aber ich habe es auch so geänderturl=ssh://[email protected]/mynickname/my_repo.git
und es hat den Trick gemachtgit remote set-url
Befehl ändern . Siehe meine Antwort unten.git remote set-url <name> [email protected]:<username>/<repo>.git
Um sich definitiv mit dem
https
Protokoll anmelden zu können , sollten Sie zuerst Ihren Authentifizierungsnachweis auf den git Remote-URI setzen :Dann werden Sie beim Versuch nach einem Passwort gefragt
git push
.Tatsächlich ist dies das http-Authentifizierungsformat. Sie können auch ein Passwort festlegen:
Sie sollten sich bewusst sein, dass in diesem Fall Ihr Github-Passwort im Klartext in Ihrem .git-Verzeichnis gespeichert wird, was offensichtlich unerwünscht ist.
quelle
https://youruser:[email protected]/user/repo.git
obwohl es nicht sicher istEine kleine Ergänzung zu Seans Antwort .
Anstatt die
.git/config
Datei manuell zu bearbeiten , können Sie dengit remote set-url
Befehl verwenden.In Ihrem Fall sollte es sein:
Ich finde es einfacher und sauberer, als mit Punktdateien herumzuspielen.
quelle
git remote set-url origin ssh://[email protected]:derekerdmann/lunch_call.git
einen Doppelpunkt zwischen github.com und dem Repo-Namen verwendenBearbeiten Sie die
.git/config
Datei in Ihrem Repo-VerzeichnisFinden
url=
Eintrag unter Abschnitt[remote "origin"]
Ändern Sie es von
url=https://github.com/rootux/ms-Dropdown.git
zuhttps://[email protected]/rootux/ms-Dropdown.git
Wo
USERNAME
ist dein Github-Benutzername?quelle
.git/config
ist auf " github.com/myrepo/subproject" eingestellt .Die anderen Antworten, die darauf hindeuten, auf SSH umzusteigen, verfehlen den Punkt. HTTPS wird unterstützt, aber Sie müssen sich mit Ihrem GITHUB-Passwort anmelden, nicht mit Ihrer SSH-Passphrase (was mir genau den gleichen Fehler gab).
Ich hatte das gleiche Problem, aber die Verwendung meines tatsächlichen GitHub-Kennworts an der Eingabeaufforderung für das Terminalkennwort behebt die Lösung, ohne die Konfiguration zu ändern oder auf SSH zurückzugreifen.
Der Grund, warum es wichtig ist, dies zu beachten, ist, dass viele öffentliche Einrichtungen (wie meine Schule) SSH blockieren, aber HTTPS zulassen (was der einzige Grund ist, warum ich überhaupt mit dem Klonen über HTTPS begonnen habe).
Hoffe, das hilft allen anderen, die das gleiche Problem haben ...
quelle
git push
werde ich zur Eingabe von au und p aufgefordert und das Ergebnis ist, dass die Erlaubnis verweigert wird. Weißt du, was mir fehlt?Gleicher Fehler und gleiche Auflösung unter Mac OS X.
Alles hat gut funktioniert, bis ich einen neuen Account auf GitHub erstellt und versucht habe zu pushen
Und bekam den Fehler:
remote: Berechtigung für NEWUSER / NEWREPO.git für OLDUSER verweigert. fatal: Zugriff auf ' https://github.com/NEWUSER/NEWREPO.git/ nicht möglich ' nicht möglich: Die angeforderte URL hat den folgenden Fehler zurückgegeben: 403
Es sollte behoben worden sein, indem der Benutzername entweder für globales oder aktuelles Repo festgelegt wurde
Aber es war nicht so.
Ich habe das Problem behoben, indem ich den mit GitHub verknüpften OLDUSER aus der Keychain Access-App im Abschnitt Kennwörter gelöscht habe . Dann wurde der Push-Befehl erfolgreich.
Referenz
quelle
Wenn Sie Windows verwenden, kann dies manchmal vorkommen, weil Windows Anmeldeinformationen für das äußere Repo (in unserem Fall Github) in seinem eigenen Speicher speichert. Die dort gespeicherten Anmeldeinformationen können sich von den derzeit benötigten unterscheiden.
Um dieses Problem zu vermeiden, suchen Sie einfach github in diesem Speicher und löschen Sie gespeicherte Anmeldeinformationen. Danach werden beim Drücken von git Ihre Anmeldeinformationen angefordert und Sie können pushen.
quelle
control panel > user accounts > credential manager > Windows credentials > Generic credentials
" Details aus diesem Beitrag löschen : stackoverflow.com/a/37450495Das funktioniert bei mir -:
Ich hoffe es hilft
quelle
<username>@
zuvorgithub.com
in der Remote-URL voranstellte ). Vielen Dank!Ich denke, @deepwaters hat die richtige Antwort für ältere Versionen erhalten. Die HTTPS-URL muss den Benutzernamen haben. Ich hatte git 1.7.0.4 und
git push origin master
würde nicht einmal nach einem Passwort fragen, bis ich es hinzugefügt habe.quelle
Aktualisieren Sie Ihren Git. GitHub hat diese Frage unter https://help.github.com/articles/error-the-requested-url-returned-error-403 beantwortet .
quelle
Ein 403-Code ist "Verboten". Der Server hat Ihre Anfrage gesehen und abgelehnt. Haben Sie die Berechtigung, in dieses Repository zu pushen?
quelle
Ich hatte tatsächlich eine sehr einfache Lösung dafür. Ich habe die Git-Konfigurationsdatei nach dem Klonen des Repositorys nur anders bearbeitet. Die Remote - Ursprungs - URL ist , was Sie in Ihrer Standard zu bearbeiten müssen Konfigurationsdatei. Es sollte wie unten aussehen
quelle
Herausgefunden. Ich habe über HTTPS geklont. Das Einrichten meiner öffentlichen SSH-Schlüssel, das Klonen über SSH und das Drücken über SSH haben das Problem behoben.
quelle
Fügen Sie einfach Ihren Benutzernamen wie folgt in die URL ein: https://[email protected]/islam9/bootstrap-rtl
Bitte überprüfen Sie: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/
quelle
Danach hat unser "Push to Git" gut funktioniert.
quelle
Tun Sie dies für eine vorübergehende Korrektur
git push -u https://username:[email protected]/username/repo_name.git master
quelle
Ich hatte den gleichen Fehler und die Ursache war dumm - ich hatte keine Berechtigungen zum Festschreiben für das ausgewählte Repository. Ich wusste nicht, dass ich muss
wie unter https://help.github.com/categories/63/articles beschrieben
quelle
Für diejenigen, denen die Berechtigung 403 verweigert wurde , während sie ssh (laut Xiao ) oder http- URLs verwenden, versuchen Sie diese Befehle
mit Administratorrechten
quelle
git config --global credential.helper store
.ändere es von
zu
Es klappt!
Vergessen Sie nicht das "Git" vor dem "@".
quelle
git config --global http.proxy http://proxyUsername:[email protected]:port
Verwenden Sie dann den Befehlgit remote set-url origin
, um die Adresse zu wechseln.Für alle Neugierigen lief auf meinem Mac-Computer gegen lucid vm git 1.7.6 gegen 1.7.0.4, und genau das gleiche Repo konnte von meinem Mac (neueres git), aber nicht von der VM, übertragen werden
Gleiche Curl-Version. Vielleicht unterstützen einige ältere Git-Versionen keine https-Pushs?
quelle
url=https://[email protected]/username/repo.git
Fügen Sie den Benutzernamen als Teil der URL hinzu und Dieser Fehler tritt auf, weil der Befehl git http anstelle von https trifft. Stellen Sie also die URL ein
Danach werden Sie zur Eingabe des Passworts aufgefordert:
quelle
Was hat bei mir funktioniert:
Mein Repo war eine Gabel und immer noch mit dem Repo der Eltern verbunden.
Wird dir sagen, ob es dein Repo ist oder nicht.
Ermöglicht es Ihnen, es in Ihr Repo umzukonfigurieren und dann zu pushen.
quelle
Keine der oben genannten Antworten hat bei mir funktioniert
enterprise
GitHub-Account. Befolgen Sie diese Schritte, um über die SSH-Schlüsselgenerierung zu drücken.Erstellen Sie ein Repo, indem Sie Ihr Git-Konto besuchen.
SSH-Schlüssel generieren:
Kopieren Sie den Inhalt der Datei ~ / .ssh / id_rsa.pub auf Ihre SSH-Schlüssel in Ihren GitHub-Kontoeinstellungen. SSH-Schlüssel testen:
CD jetzt in deinen Git-Klon-Ordner und mache:
Versuchen Sie nun, eine Datei zu bearbeiten (versuchen Sie es mit der README-Datei) und gehen Sie dann wie folgt vor:
Update: Die neue Git-Version scheint zu empfehlen, keine Datei zu haben, während ein neues Repo erstellt wird. Machen Sie daher ein leeres Repo.
quelle
Ich habe meine eigene Variante dieses Problems herausgefunden.
Das Problem bestand nicht darin, das Protokoll von https in ssl zu ändern, sondern den globalen Benutzernamen und die E-Mail-Adresse von Github festzulegen! (Ich habe versucht, in ein privates Repository zu pushen.
quelle
Github hat eine Seite zur Fehlerbehebung:
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.
quelle
Ich hatte dieses Problem gerade und es stellte sich heraus, dass meine Server /etc/resolver.conf-Datei eine schlechte IP-Adresse hatte. Könnte anderen helfen.
quelle
Dies ist mir passiert, weil mein Mitarbeiter versehentlich das Repository deaktiviert hat, aus dem dieses Repository gegabelt wurde. Überprüfen Sie möglicherweise, ob das ursprüngliche Git (Hub) -Repo tatsächlich noch vorhanden ist.
quelle
Es könnte ein Buchhaltungsproblem sein. Das Github-Konto des vorgelagerten (privaten) Repo-Eigentümers ist möglicherweise nicht finanziell. Ich habe dies gesehen, wo die Kreditkarte des Kunden abgelaufen ist.
quelle
Was für mich funktioniert hat, ist der Wechsel von http zu ssh:
dann überprüfen Sie es mit
git remote -v
quelle
Ich hatte das gleiche Problem. Mein Fall war: Ich hatte Git Repo lokal initialisiert, bevor ich es auf Github erstellt hatte, und dann versucht, einen Remote-Zweig hinzuzufügen. Ich habe mein Problem gelöst, indem ich die Reihenfolge der Aktionen geändert habe: Ein Repo auf der Github-Site erstellt und dann lokal gestartet. Aber es ist nicht der Fall für diejenigen, die alles wie ich von der Kommandozeile aus erledigen möchten.
quelle