Pushen naar Git geeft foutcode 403 fataal terug: HTTP-verzoek mislukt

Ik heb een kopie van deze opslagplaats kunnen klonen via HTTPS-authenticatie. Ik heb een aantal commits gedaan en wil terug naar de GitHub-server pushen. Cygwin gebruiken op 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

Stel het ook in met de uitgebreide modus. Ik ben nog steeds behoorlijk verbijsterd.

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

Dit zijn de versies van git en curl die ik heb:

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

Antwoord 1, autoriteit 100%

Ik heb net hetzelfde probleem en ben er net achter wat de oorzaak is.

Github lijkt alleen de ssh-manier te ondersteunen om de repo te lezen en te schrijven, hoewel de https-manier ook ‘Read&Write’ weergeeft.

Dus u moet uw repo-configuratie op uw pc wijzigen in ssh-manier:

  1. bewerk .git/configbestand onder je repo-directory
  2. vind url=vermelding onder sectie [remote "origin"]
  3. wijzig het van url=https://[email protected]/derekerdmann/lunch_call.gitin [email protected]/derekerdmann/lunch_call.git. dat wil zeggen, verander alle teksten voor het @symbool in ssh://git
  4. Sla het bestand configop en sluit af. nu zou je git push origin masterkunnen gebruiken om je repo op GitHub te synchroniseren

Antwoord 2, autoriteit 53%

Om zeker te kunnen inloggen met het httpsprotocol, moet je eerst je authenticatie referentieinstellen op de git Remote URI:

git remote set-url origin https://[email protected]/user/repo.git

Vervolgens wordt u om een ​​wachtwoord gevraagd wanneer u probeert te git push.

In feite is dit in het http-authenticatieformaat. U kunt ook een wachtwoord instellen:

https://youruser:[email protected]/user/repo.git

Je moet er rekening mee houden dat als je dit doet, je github-wachtwoord in platte tekst wordt opgeslagen in je .git-map, wat uiteraard ongewenst is.


Antwoord 3, autoriteit 14%

Een kleine toevoeging aan Sean’s antwoord.

In plaats van het .git/configbestand handmatig te bewerken, kun je het git remote set-urlcommando gebruiken.

In jouw geval zou het moeten zijn:

git remote set-url origin ssh://[email protected]/derekerdmann/lunch_call.git

Ik vind het makkelijker en overzichtelijker dan rommelen met dot-files.


Antwoord 4, autoriteit 7%

Bewerk .git/configbestand onder je repo directory

Vind url=item onder sectie [remote "origin"]

Verander het van url=https://github.com/rootux/my-repo.gitin
https://[email protected]/rootux/my-repo.git

waar USERNAMEje github-gebruikersnaam is


Antwoord 5, autoriteit 5%

De andere antwoorden die suggereren over te schakelen naar SSH slaan de plank mis. HTTPS wordt ondersteund, maar je moet inloggen met je GITHUB-wachtwoord, niet je SSH-wachtwoordzin (wat me exact dezelfde fout gaf).

Ik had hetzelfde probleem, maar door ervoor te zorgen dat ik mijn echte GitHub-wachtwoord gebruikte bij de prompt voor het wachtwoord van de terminal, werd de oplossing opgelost zonder de configuratie te wijzigen of mijn toevlucht te nemen tot SSH.

De reden dat het belangrijk is om dit op te merken, is dat veel openbare instellingen (zoals mijn school) SSH zullen blokkeren, maar HTTPS toestaan ​​(wat de enige reden is waarom ik in de eerste plaats ben begonnen met klonen via HTTPS).

Ik hoop dat dit iemand anders met hetzelfde probleem helpt…


Antwoord 6, autoriteit 4%

Als u Windows gebruikt, kan dit soms gebeuren omdat Windows de inloggegevens voor de externe repo (in ons geval github) opslaat in zijn eigen opslag. En de inloggegevens die daar zijn opgeslagen, kunnen verschillen van de gegevens die u nu nodig heeft.

voer hier de afbeeldingsbeschrijving in

Dus om dit probleem te voorkomen, zoek je github in deze opslag en verwijder je opgeslagen inloggegevens. Hierna zal git tijdens het pushen om je inloggegevens vragen en je toestaan ​​om te pushen.


Antwoord 7, autoriteit 3%

Dezelfde fout en oplossing op Mac OS X.

Alles werkte prima totdat ik een nieuw account op GitHubaanmaakte en probeerde te pushen

$ git push -u origin master

En kreeg de foutmelding:

remote: Toestemming voor NEWUSER/NEWREPO.git geweigerd aan OLDUSER. fataal: geen toegang tot https://github.com/NEWUSER/NEWREPO.git/‘: De gevraagde URL retourneerde fout: 403

Het zou opgelost moeten zijn door de gebruikersnaam in te stellen voor een globale of huidige repo

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

Maar dat gebeurde niet.

Ik heb het opgelost door de OLDUSER die is gekoppeld aan GitHub uit de Keychain Access-app te verwijderenin het gedeelte Wachtwoorden. Daarna is het push-commando gelukt.

$ git push -u origin master

referentie


Antwoord 8, autoriteit 2%

Dit werkt voor mij -:

git remote set-url origin https://[email protected]/user/repo.git

Hopelijk helpt het


Antwoord 9, autoriteit 2%

Ik denk dat @deepwaters het juiste antwoord had voor oudere versies. De HTTPS-URL moet de gebruikersnaam hebben. Ik had git 1.7.0.4 en git push origin mastervroeg niet eens om een ​​wachtwoord totdat ik het had toegevoegd.


Antwoord 10, autoriteit 2%

Upgrade je git. GitHub heeft deze vraag beantwoord op https://help.github.com/articles/ error-the-requested-url-returned-error-403.


Antwoord 11, autoriteit 2%

Een 403-code is ‘Verboden’. De server heeft uw verzoek gezien en geweigerd. Heb je toestemming om naar die repository te pushen?


Antwoord 12

Ik heb het bedacht. Ik heb gekloond via HTTPS. Het instellen van mijn openbare SSH-sleutels, het klonen over SSH en het pushen van SSH loste het op.


Antwoord 13

Ik had hier eigenlijk een heel eenvoudige oplossing voor. Het enige wat ik deed was het git-configuratiebestand anders bewerken na het klonen van de repository. De externe bron-URL is wat u moet bewerken in uw standaard config-bestand. Het zou eruit moeten zien zoals hieronder te zien is

[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

Antwoord 14

  1. Klik op uw repository
  2. Klik aan de rechterkant op “Instellingen”
  3. Klik in het optiepaneel aan de linkerkant op ‘Bijdragers’
  4. Voeg de naam van de persoon toe die je kent in GitHub
  5. Klik op ‘Bijdragers toevoegen’

Hierna werkte onze “Push to Git” prima.


Antwoord 15

Doe dit voor een tijdelijke oplossing

git push -u https://username:[email protected]/username/repo_name.git master


Antwoord 16

Ik kreeg te maken met dezelfde fout en de oorzaak was dom – ik had geen rechten om me te committeren aan de geselecteerde repository. Ik wist niet dat ik

  1. vork eerst geselecteerd project
  2. repository lokaal klonen
  3. mijn wijzigingen lokaal doorvoeren
  4. druk wijzigingen door in mijn github-kloon
  5. pull-verzoek aan upstream vragen

zoals beschreven in https://help.github.com/categories/63/articles


Antwoord 17

Voeg je gebruikersnaam als volgt toe aan de URL:
https://[email protected]/islam9/bootstrap-rtl

controleer alstublieft:
http: //islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/


Antwoord 18

Voor degenen die toestemming hebben geweigerd 403fout tijdens het gebruik van ssh(volgens Xiao) of httpurl’s
probeer deze commando’s

>git config --global --unset-all credential.helper
>git config --unset-all credential.helper

met beheerdersrechten

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

Antwoord 19

Geen van de bovenstaande antwoorden werkte voor mijn enterpriseGitHub-account. Volg deze stappen om te pushen via ssh-sleutelgeneratie.

Maak een opslagplaats door naar uw git-account te gaan.

Ssh-sleutel genereren:

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

Kopieer de inhoud van het bestand ~/.ssh/id_rsa.pub naar uw SSH-sleutels in uw GitHub-accountinstellingen.
SSH-sleutel testen:

ssh -T [email protected]
clone the repo:
git clone git://github.com/username/your-repository

Cd nu naar je git clone-map en doe:

git remote set-url origin [email protected]:username/your-repository.git

Probeer nu een bestand te bewerken (probeer de README) en doe dan:

git add -A
git commit -am "my update msg"
git push -u origin master

Update: nieuwe git-versie lijkt aan te bevelen om geen bestand te hebben terwijl een nieuwe repo wordt gemaakt. Maak daarom een ​​lege repo.


Antwoord 20

wijzig het van

url=https://[email protected]/derekerdmann/lunch_call.git 

naar

url=ssh://[email protected]/derekerdmann/lunch_call.git

Het werkt!

Vergeet de “git” voor de “@” niet.


Antwoord 21

Hieronder staat de oplossing

Voor Windows vindt u de toetsen hier:

bedieningspaneel > gebruikersaccounts > referentiemanager > Windows-referenties > Algemene referenties

Verwijder vervolgens de Github-sleutels.

In mac

1-Zoek in Finder naar de app Sleutelhangertoegang.

2Zoek in Sleutelhangertoegang naar github.com.

3-Zoek het “internetwachtwoord”-item voor github.com.

4-Bewerk of verwijder de invoer dienovereenkomstig.


Antwoord 22

Voor iedereen die nieuwsgierig is, mijn mac-machine versus lucide vm draaide git 1.7.6 versus 1.7.0.4, en exact dezelfde repo was pushbaar vanaf mijn mac (nieuwere git) maar niet de VM

Dezelfde krulversie. Misschien ondersteunen sommige oudere git-versies geen https-push?


Antwoord 23

Voeg de gebruikersnaam toe als onderdeel van de URL en deze fout treedt op omdat het git-commando http raakt in plaats van https. Dus stel de url in

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

Hierna wordt u om een ​​wachtwoord gevraagd:


Antwoord 24

Wat voor mij werkte:

Mijn repo was een forken nog steeds gekoppeld aan de repo van de ouders.

git remote -v

Zal u vertellen of het uw repo is of niet.

git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git

Hiermee kunt u het opnieuw configureren in uw repo en vervolgens pushen.


Antwoord 25

Ik heb mijn eigen variant van dit probleem bedacht.

Het probleem was niet het wijzigen van het protocol van https in ssl, maar in plaats daarvan
de Github globale gebruikersnaam en e-mail instellen! (Ik probeerde te duwen naar een
privé repository.

git config --global user.email "[email protected]"
git config --global user.name "Your full name"

Antwoord 26

Github heeft een pagina gewijd aan het oplossen van deze fout:

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

In mijn geval bleek dat het gebruik van een nieuwe versie van git (1.8.5.2) dit probleem oploste.


Antwoord 27

Iedereen die zijn probleem niet met deze oplossingen heeft opgelost, volgt deze thread:

“Dit gebeurt wanneer twee git-accounts op dezelfde machine worden gebruikt”
https://stackoverflow.com/a/52046047/7861886

het heeft een Windows-oplossing en ik heb ook een Mac-oplossing voor Mac-gebruikers toegevoegd in opmerkingen.


Antwoord 28

Ik had dit probleem nu, en het bleek dat mijn server /etc/resolver.conf-bestand een slecht ip-adres had. Kan anderen helpen.


Antwoord 29

Dit is mij overkomen omdat mijn collega per ongeluk de repository heeft uitgeschakeld waaruit deze repository is afgeleid. Controleer misschien of de originele git(hub)-repo nog steeds bestaat.


Antwoord 30

Het kan een boekhoudkundig probleem zijn. Het Github-account van de upstream (particuliere) repo-eigenaar is mogelijk niet financieel. Ik heb dit gezien waar de creditcard van de klant is verlopen.

Other episodes