Ich konnte eine Kopie dieses Repos über HTTPS authentifiziert klonen. Ich habe ein paar Commits gemacht und möchte auf den GitHub-Server zurückschieben. Cygwin unter Windows 7 x64 verwenden.
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 mit dem ausführlichen Modus ein. Ich bin immer noch ziemlich ratlos.
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
Ich habe nur das gleiche Problem und habe nur herausgefunden, was die Ursache ist.
Github unterstützt scheinbar nur die ssh-Methode zum Lesen und Schreiben des Repos.
Sie müssen also Ihre Repo-Konfiguration auf Ihrem PC in ssh ändern:
.git/config
-Datei in Ihrem Repo-Verzeichnisurl=
eintrag finden Sie im Abschnitt [remote "Origin"]
url=https://[email protected]/derekerdmann/lunch_call.git
in url=ssh://[email protected]/derekerdmann/lunch_call.git
. Ändern Sie also alle Texte vor dem @
-Symbol in ssh://git
.config
-Datei und beenden Sie den Vorgang. Jetzt können Sie git Push Origin master
verwenden, um Ihr Repo auf GitHub zu synchronisierenUm sich definitiv mit dem https
-Protokoll anmelden zu können, sollten Sie zunächst Ihren authentication-Berechtigungsnachweis auf git Remote URI setzen:
git remote set-url Origin https://[email protected]/user/repo.git
Sie werden dann nach einem Kennwort gefragt, wenn Sie versuchen, git Push
.
Tatsächlich handelt es sich hierbei um das HTTP-Authentifizierungsformat. Sie können auch ein Passwort festlegen:
https://youruser:[email protected]/user/repo.git
Sie sollten sich dessen bewusst sein, dass Ihr github-Passwort in Ihrem .git-Verzeichnis in Klartext gespeichert wird, was offensichtlich unerwünscht ist.
Eine kleine Ergänzung zu Seans Antwort .
Anstatt die .git/config
-Datei manuell zu bearbeiten, können Sie den git remote set-url
-Befehl verwenden.
In Ihrem Fall sollte es sein:
git remote set-url Origin ssh://[email protected]/derekerdmann/lunch_call.git
Ich finde es einfacher und sauberer, als mit Dot-Dateien herumzuspielen.
Bearbeiten Sie die .git/config
-Datei in Ihrem Repo-Verzeichnis
url=
-Eintrag unter Abschnitt [remote "Origin"]
suchen
Ändern Sie es von url=https://github.com/rootux/ms-Dropdown.git
in https://[email protected]/rootux/ms-Dropdown.git
dabei ist USERNAME
Ihr github-Benutzername
Die anderen Antworten, die auf eine Umstellung auf SSH hindeuten, verfehlen den Punkt. HTTPS wird unterstützt, aber Sie müssen sich mit Ihrem GITHUB-Passwort anmelden, nicht mit Ihrer SSH-Passphrase (was genau den gleichen Fehler ergab).
Ich hatte das gleiche Problem, stellte jedoch sicher, dass mein aktuelles GitHub-Kennwort am Terminalkennwort verwendet wurde. Prompt beendete 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 z. B. meine Schule) SSH blockieren, HTTPS jedoch zulassen (was der einzige Grund ist, weshalb ich überhaupt damit angefangen habe, über HTTPS zu klonen).
Hoffe, das hilft allen anderen, die das gleiche Problem haben ...
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, ihn zu pushen
$ git Push -u Origin master
Und bekam den Fehler:
remote: Berechtigung für NEWUSER/NEWREPO.git an OLDUSER verweigert. Schwerwiegend: Zugriff auf " https://github.com/NEWUSER/NEWREPO.git/ " nicht möglich: Die angeforderte URL hat den Fehler 403 zurückgegeben
Dies sollte behoben sein, indem der user.name entweder für globales oder aktuelles Repo gesetzt wurde
$ git config –-global user.name NEWUSER
$ git config user.name NEWUSER
Aber es war nicht so.
Das Problem wurde behoben, indem der mit GitHub verknüpfte OLDUSER aus der Keychain Access-App im Abschnitt "Passwörter" gelöscht wurde. Dann wurde der Push-Befehl erfolgreich ausgeführt.
$ git Push -u Origin master
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.
Das funktioniert für mich -:
git remote set-url Origin https://[email protected]/user/repo.git
Ich hoffe es hilft
Verbessere deinen Idiot. GitHub hat diese Frage unter https://help.github.com/articles/error-the-requested-urlreturned-error-403 beantwortet.
Ein 403-Code ist "verboten". Der Server hat Ihre Anfrage erkannt und abgelehnt. Haben Sie die Erlaubnis, zu diesem Repository zu pushen?
Wenn Sie Windows verwenden, kann dies manchmal der Fall sein, 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 denen unterscheiden, die Sie gerade benötigen.
Um dieses Problem zu vermeiden, suchen Sie einfach nach github in diesem Speicher und löschen Sie gespeicherte Anmeldeinformationen. Danach fordert git Ihre Anmeldeinformationen an und ermöglicht Ihnen das Push.
Ich hatte eigentlich eine sehr einfache Lösung dafür. Alles, was ich tat, war, die git config-Datei nach dem Klonen des Repositorys anders zu bearbeiten. Die entfernte Origin-URL muss in Ihrer Standarddatei config bearbeitet werden. Es sollte wie unten aussehen
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "Origin"]
fetch = +refs/heads/*:refs/remotes/Origin/*
url = https://*username*@github.com/*username*/*repository*.git
[branch "master"]
remote = Origin
merge = refs/heads/master
Herausgefunden. Ich habe über HTTPS geklont. Das Einrichten meiner öffentlichen SSH-Schlüssel, das Klonen über SSH und das Überschieben von SSH hat dieses Problem behoben.
Danach funktionierte unser "Push to Git" einwandfrei.
Fügen Sie einfach Ihren Benutzernamen wie folgt in die URL ein: https: //[email protected]/islam9/bootstrap-rtl
bitte überprüfen: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/
Tun Sie dies für eine temporäre Lösung
git Push -u https://username:[email protected]/username/repo_name.git master
ändere es aus
url=https://[email protected]/derekerdmann/lunch_call.git
zu
url=ssh://[email protected]/derekerdmann/lunch_call.git
Es klappt!
Vergessen Sie nicht das "git" vor dem "@".
Keine der obigen Antworten funktionierte für mein enterprise
GitHub-Konto. Befolgen Sie diese Schritte, um über die SSH-Schlüsselerstellung zu gelangen.
Erstellen Sie ein Repo . Stellen Sie sicher, dass sich mindestens eine Datei darin befindet (auch nur die README) Generieren Sie den ssh-Schlüssel:
ssh-keygen -t rsa -C "[email protected]"
Kopieren Sie den Inhalt der Datei ~/.ssh/id_rsa. Geben Sie Ihre SSH-Schlüssel in Ihren GitHub-Kontoeinstellungen ein. Testen Sie den SSH-Schlüssel:
ssh -T [email protected]
clone the repo:
git clone git://github.com/username/your-repository
Now cd in Ihren Git-Klon-Ordner, und führen Sie Folgendes aus:
git remote set-url Origin [email protected]:username/your-repository.git
Versuchen Sie, eine Datei zu bearbeiten (versuchen Sie es mit README) und dann:
git add -A
git commit -am "my update msg"
git Push -u Origin master
Was für mich funktioniert hat:
Mein Repo war eine Gabel und war immer noch mit dem Repo der Eltern verbunden.
git remote -v
Will dir sagen, ob es dein Repo ist oder nicht.
git remote set-url Origin https://github.com/USERNAME/OTHERREPOSITORY.git
Ermöglicht Ihnen die Neukonfiguration für Ihr Repo und das anschließende Push.
Fügen Sie den Benutzernamen als Teil der URL hinzu. Dieser Fehler tritt auf, weil der Befehl git http anstelle von https trifft. Setzen Sie also die URL
git remote set-url Origin https://<username>@github.com/Path_to_repo.git
Danach werden Sie nach dem Passwort gefragt:
Für alle, die neugierig sind, lief mein Mac-Rechner gegen lucid vm git 1.7.6 vs. 1.7.0.4, und genau das gleiche Repo konnte von meinem Mac aus (neuerer git) verwendet werden, nicht jedoch die VM
Gleiche Lockenversion. Vielleicht unterstützen einige ältere Git-Versionen keine https-Pushs?
Ich war mit dem gleichen Fehler konfrontiert und die Ursache war dumm - ich hatte keine Privilegien für das ausgewählte Repository. Ich wusste nicht, dass ich muss
wie in https://help.github.com/categories/63/articles beschrieben
Für Benutzer, denen die Berechtigung 403 error bei Verwendung von ssh (gemäß Xiao ) oder http - URLs .__
>git config --global --unset-all credential.helper
>git config --unset-all credential.helper
mit Administratorrechten
>git config --system --unset-all credential.helper
Ich habe meine eigene Variation dieses Problems herausgefunden.
Das Problem bestand nicht darin, das Protokoll von https in ssl zu ändern, sondern stattdessen __. (Ich habe versucht, auf ein privates Repository zu verschieben.
git config --global user.email "[email protected]"
git config --global user.name "Your full name"
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 gelöst hat.
Dies geschah mir, weil mein Kollege versehentlich das Repository deaktiviert hatte, aus dem dieses Repository gespalten wurde. Überprüfen Sie einfach, ob das ursprüngliche Git-Repo tatsächlich noch vorhanden ist.
Das Klonen mit ssh
anstelle von https
hat dieses Problem für mich gelöst
Es könnte ein Buchhaltungsproblem sein. Das Github-Konto des vorgelagerten (privaten) Repo-Inhabers ist möglicherweise nicht finanziell. Ich habe gesehen, wo die Kreditkarte des Kunden abgelaufen ist.
Nach dem Wechsel von https zu http in der gitbox-App hat es für mich funktioniert.
was für mich funktioniert hat, ändert sich von http zu ssh:
git remote rm Origin
git remote add Origin [email protected]:username/repoName.git
dann mit git remote -v
überprüfen
Das einzige, was mir geholfen hat, ist die Antwort auf eine andere Frage:
Gits berühmtes "ERROR: Erlaubnis zu .git verweigert Benutzer"
Zusammenfassend, wenn Sie wie ich mit Windows sind, suchen Sie nach "Credential Manager" und öffnen Sie es. Dort finden Sie Ihre Git-Zugangsdaten. Ändern Sie den Benutzernamen (den Sie in etwas anderes geändert haben müssen).
Sie finden es auch unter "Systemsteuerung" - "Benutzerkonto" - "Credential Manager".
In meinem Fall wurde der Fehler verursacht, weil ich keine Berechtigungen im Repository habe.
Ich habe die gleiche Art von Fehler. Zugriff auf 403 nicht möglich ..__ In meinem Fall hat keine dieser Antworten funktioniert. Also versuchte ich das unten, es hat funktioniert.
Code wurde erfolgreich verschoben
!Mac OS!
Manchmal ist an Einstellungen nichts falsch, und auf Github-Servern gibt es einige Probleme.
https://status.github.com - aktueller Status von github :)
Ich hatte dieses Problem jetzt und es stellte sich heraus, dass meine Server-Datei /etc/resolver.conf eine falsche IP-Adresse hatte. Könnte anderen helfen.
In meinem Fall erhielt ich den obigen Fehler für meine email-ID, und github wurde noch nicht verifiziert . GitHub gab diese Warnung vor ungeprüfter E-Mail aus.
Die E-Mail zu überprüfen und dann zu pushen, funktionierte für mich.
Ich hatte das gleiche Problem. Mein Fall war: Ich hatte git Repo lokal initialisiert, bevor ich es auf Github erstellt hatte. Dann versuchte ich, einen Remote-Zweig hinzuzufügen. Ich habe mein Problem gelöst, indem ich die Reihenfolge der Aktionen geändert habe: Ich habe ein Repo auf der Github-Site erstellt und es dann lokal eingefügt. Aber es ist nicht der Fall für diejenigen, die gerne alles von mir aus als Kommandozeile tun.
Ich war zuvor als ein anderer github-Benutzer angemeldet (zB user1). Für mein aktuelles github-Konto (sagen wir user2) konnte ich ein neu erstelltes Repo in github klonen, aber ich konnte die Änderungen nicht verschieben.
Ich habe alle oben genannten Antworten ausprobiert, einschließlich des Entfernens der Anmeldeinformationen aus dem Windows Credential Manager, aber es hat nichts funktioniert.
Am Ende funktionierte der Start von github Windows App. Navigieren Sie zu Einstellungen-> Optionen und voila der angemeldete Benutzer war Benutzer1. Klicken Sie auf Abmelden von diesem Benutzer und melden Sie sich in diesem Fall Benutzer2 als Benutzer an
Um einen solchen 403 während eines Push-Fehlers aufzulösen, müssen Sie in die .git-Verzeichnis-Konfigurationsdatei gehen und die angegebene Zeile ändern:
precomposeunicode = true
[remote "Origin"]
http://[email protected]:abc/xyz.git
Ändern Sie die Zeile dazu
precomposeunicode = true
[remote "Origin"]
ssh://[email protected]/abc/xyz.git
Dies hat mein Problem gelöst.
Versuchen Sie, Ihren Origin mit einem SSH-Schlüssel anstelle von HTTP zu erstellen.
Wenn Sie mit einem SSH-Schlüssel initiieren können, beginnt die URL mit:
[email protected]:<YOUR REPO URL>
Jetzt können Sie hinzufügen, festschreiben und in die entsprechende Filiale verschieben
Wenn keine der Lösungen für Sie funktioniert hat, lesen Sie diese Antwort schnell [möglicherweise ist Ihr Fall]:
Für diejenigen von Ihnen wie mir, die alle diese [großartigen] Antworten durchlaufen haben, aber immer noch Schwierigkeiten haben, Ihre Commits durchzusetzen, gibt es möglicherweise einen weiteren Grund für das Scheitern eines Push.
Überprüfen Sie Ihr Git-Repository (wo auch immer, GitHub, BitBucket, ...), ob alles in Ordnung ist. In meinem Fall, nachdem ich viel Zeit verbracht hatte, um herauszufinden, was mein Problem ist (sogar die Neuauflage von PyCharm!), Wurde mir klar, dass ich einige dumme Sachen gemacht habe und mein BitBucket-Repo die 2-GB-Grenze überschritten hat und automatisch zu einem schreibgeschützten Modus wurde Repo und deshalb konnte ich kein neues Commit durchführen. Genau das führt dazu, dass Sie denselben Fehler erhalten (403: Zugriff auf die URL nicht möglich.)
stellen Sie sicher, dass Sie über ausreichende Berechtigungen zum Pushen in das Repository verfügen, wenn Sie versuchen, diese Befehle auszuführen
git config --global user.email [email protected]
git config --global user.name username
git config --global user.password yourpassword
hoffe das hilft jemandem
Stellen Sie dem Benutzer Schreibzugriff zur Verfügung.
Nachdem Sie den Zugang bereitgestellt haben. Geben Sie den Code einmal ein und drücken Sie ihn dann.
Ein weiterer möglicher Grund ist, dass Sie möglicherweise ihre Plangrenze überschritten haben.
Um dieses Problem zu beheben und den Schreibzugriff auf das Repo wiederherzustellen, muss entweder Ihr Kontoplan aktualisiert werden oder einige Ihrer Mitarbeiter müssen entfernt werden.
Ich hatte das gleiche Problem mit Bitbucket, aber ich wartete 5 Minuten und dann versuchte ich es erneut und es funktionierte gut. Manchmal kann es ein Problem mit dem Anbieter geben.
Ein weiterer Grund könnte die E-Mail-Bestätigung auf github.com sein
Melden Sie sich einfach bei github.com an und prüfen Sie, ob keine Nachricht für Sie vorhanden ist, um Ihre E-Mail-Adresse zu bestätigen. Bestätigen Sie ggf..
Wenn Sie BitBucket verwenden, kann Ihr Konto aus den folgenden Gründen in den schreibgeschützten Modus versetzt werden:
- Wir aktualisieren unsere Speichersegmente und können keine neuen Daten akzeptieren.
- Wir führen Änderungen durch, die keine neuen Schreibvorgänge erfordern.
- Der Besitzer des Repositorys muss sein Konto aktualisieren, um eine höhere Anzahl von Benutzern zu akzeptieren.
https://confluence.atlassian.com/display/BITBUCKET/Repositories+in+ReadOnly+Mode
Bearbeiten Sie die .git/config -Datei in Ihrem Repo-Verzeichnis
URL suchen = Eintrag unter Abschnitt [Remote "Origin"]
Ändern Sie es von url = https://github.com/rootux/ms-Dropdown.git in https: //[email protected]/rootux/ms-Dropdown.git
dabei ist USERNAME Ihr Github-Benutzername
=> Diese Lösung hat bei mir funktioniert.
Ich hatte das gleiche Problem mit dem gleichen Fehler, der mir dies sagte
remote: Berechtigung für Benutzer/repo.git für Benutzer2 verweigert.
Das Problem dabei ist, dass unter Windows und Mac ein Schlüsselpfad zu Github im Cache gespeichert ist.
Um dies auf dem Mac zu beheben, tun Sie dies einfach
git credential-osxkeychain erase
An der Konsole wird nichts angezeigt.
Dann machen Sie einfach einen normalen Push und Sie sollten Ihren Benutzernamen und Ihr Passwort erneut von Github eingeben.
git commit -m "First Commit"
Für die Verwendung des Fensters siehe Antworten oben ^ mit gespeicherten Anmeldeinformationen