Question Pousser à Git en retournant le code d'erreur 403 fatal: la requête HTTP a échoué


J'ai été capable de cloner une copie de ce repo sur HTTPS authentifié. J'ai fait quelques commits et je veux retourner au serveur GitHub. Utilisation de Cygwin sous 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

Configurez-le également avec le mode verbeux. Je suis encore assez déconcerté.

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

Ce sont les versions de git et curl que j'ai:

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

524
2017-09-15 22:45


origine


Réponses:


J'ai juste eu le même problème et juste compris quelle est la cause.

Github semble seulement soutenir la manière de ssh pour lire et écrire le repo, bien que la manière de https ait également affiché «Read & Write».

Donc, vous devez changer votre configuration de repo sur votre PC à ssh façon:

  1. modifier .git/config fichier sous votre répertoire repo
  2. trouver url=entrée en section [remote "origin"]
  3. changer de url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git à url=ssh://git@github.com/derekerdmann/lunch_call.git. c'est-à-dire, changer tous les textes avant @ symbole à ssh://git
  4. sauvegarder config fichier et quitter. maintenant vous pouvez utiliser git push origin master synchroniser votre repo sur GitHub

717
2017-10-14 18:26



Pour pouvoir définitivement vous connecter en utilisant https protocole, vous devez d'abord définir votre identifiant d'authentification au git URI à distance:

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

Ensuite, il vous sera demandé un mot de passe en essayant de git push.

En fait, c'est sur le format d'authentification http. Vous pouvez aussi définir un mot de passe:

https://youruser:password@github.com/user/repo.git

Vous devez être conscient que si vous faites cela, votre mot de passe github sera stocké en clair dans votre répertoire .git, ce qui est évidemment indésirable.


362
2017-07-06 19:41



Une petite addition à La réponse de Sean.

Au lieu de modifier .git/config fichier manuellement, vous pouvez utiliser git remote set-url commander.

Dans votre cas, cela devrait être:

git remote set-url origin ssh://git@github.com/derekerdmann/lunch_call.git

Je trouve cela plus facile et plus propre que de jouer avec des fichiers de points.


96
2018-06-04 22:29



modifier .git/config fichier sous votre répertoire repo

Trouver url= entrée en section [remote "origin"]

Changez de url=https://github.com/rootux/ms-Dropdown.git à https://USERNAME@github.com/rootux/ms-Dropdown.git

USERNAME est votre nom d'utilisateur github


47
2017-11-07 09:39



Les autres réponses qui suggèrent de passer SSH en quelque sorte ratent le point. HTTPS est supporté, mais vous devez vous connecter avec votre mot de passe GITHUB, pas votre mot de passe SSH (qui était ce qui me donnait la même erreur).

J'avais le même problème, mais en m'assurant d'utiliser mon mot de passe GitHub réel à l'invite de mot de passe du terminal, j'ai corrigé la solution sans modifier la configuration, ou en ayant recours à SSH.

La raison pour laquelle il est important de noter ceci, est que de nombreuses institutions publiques (comme mon école) vont bloquer SSH, mais autoriser HTTPS (qui est la seule raison pour laquelle j'ai commencé à cloner sur HTTPS en premier lieu).

J'espère que cela aide quelqu'un d'autre ayant le même problème ...


40
2018-01-17 17:27



Même erreur et résolution sur Mac OS X.

Tout fonctionnait bien jusqu'à ce que je crée un nouveau compte sur GitHub et essayé de pousser

$ git push -u origin master

Et a eu l'erreur:

remote: Autorisation de NEWUSER / NEWREPO.git refusée à OLDUSER. fatal: impossible d'accéder 'https://github.com/NEWUSER/NEWREPO.git/': L'URL demandée a renvoyé une erreur: 403

Il aurait dû fixer en définissant le user.name soit pour le repo global ou actuel

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

Mais ce n'est pas le cas.

Je l'ai fait réparer en supprimant le OLDUSER associé à GitHub de l'application Keychain Access dans la section "Mots de passe". Ensuite, la commande push a réussi.

$ git push -u origin master

référence


17
2017-11-10 11:36



Je pense que @deepwaters a obtenu la réponse correcte pour les anciennes versions. L'URL HTTPS doit avoir le nom d'utilisateur. J'ai eu git 1.7.0.4 et git push origin master Je ne demanderais même pas un mot de passe avant de l'avoir ajouté.


14
2018-06-27 14:44



Cela fonctionne pour moi -:

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

J'espère que cela aide


13
2017-09-27 21:41