web-dev-qa-db-fra.com

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

J'ai pu cloner une copie de ce référentiel sur HTTPS authentifié. J'ai commis des commits et je veux retourner au serveur GitHub. Utilisation de Cygwin sur 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

Également le configurer en mode verbeux. Je suis encore assez perplexe.

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

Voici 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
564
Mike

Je viens d'avoir le même problème et juste trouvé la cause.

Github semble ne prendre en charge que le mode ssh pour lire et écrire le référentiel, bien que le mode https affiche également «Lecture et écriture».

Vous devez donc modifier votre configuration de référentiel sur votre PC de manière ssh:

  1. éditez le fichier .git/config sous votre répertoire de dépôt
  2. trouver url=entry dans la section [remote "Origin"]
  3. changez-le de url=https://[email protected]/derekerdmann/lunch_call.git à url=ssh://[email protected]/derekerdmann/lunch_call.git. c'est-à-dire changer tous les textes avant le symbole @ en ssh://git
  4. Enregistrer le fichier config et quitter. vous pouvez maintenant utiliser git Push Origin master pour synchroniser votre rapport sur GitHub
768
Xiao

Pour pouvoir vous connecter avec le protocole https, vous devez d’abord définir vos informations d’identification authentication sur git URI distant :

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

Ensuite, un mot de passe vous sera demandé lors de la tentative de git Push.

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

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

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

384
Thiago Macedo

Un petit ajout à la réponse de Sean .

Au lieu d’éditer le fichier .git/config manuellement, vous pouvez utiliser la commande git remote set-url.

Dans votre cas, cela devrait être:

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

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

103
fetsh

Editez le fichier .git/config sous votre répertoire de dépôt

Recherchez l'entrée url= dans la section [remote "Origin"]

Changez-le de url=https://github.com/rootux/ms-Dropdown.git en https://[email protected]/rootux/ms-Dropdown.git

USERNAME est votre nom d'utilisateur github

53
Gal Bracha

Les autres réponses qui suggèrent de passer à SSH ne tiennent pas la route. HTTPS est pris en charge, mais vous devez vous connecter avec votre mot de passe GITHUB, pas avec votre phrase secrète SSH (qui était ce qui me donnait exactement la même erreur). 

J'avais le même problème, mais je me suis assuré d'utiliser mon mot de passe GitHub actuel sur le mot de passe du terminal. La solution a été corrigée sans modification de la configuration ni recours à SSH.

La raison pour laquelle il est important de noter cela est que de nombreuses institutions publiques (telles que mon école) bloquent SSH, mais autorisent le protocole HTTPS (la seule raison pour laquelle j'ai commencé à cloner via HTTPS au départ).

Espérons que cela aide quelqu'un d'autre ayant le même problème ...

41
BMB

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

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

$ git Push -u Origin master

Et j'ai eu l'erreur:

remote: permission refusée à OLDUSER pour NEWUSER/NEWREPO.git. fatal: impossible d'accéder ' https://github.com/NEWUSER/NEWREPO.git/ ': l'URL demandée a renvoyé l'erreur: 403

Cela aurait dû être corrigé en définissant le nom d’utilisateur.name pour le référentiel global ou actuel.

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

Mais ça n’a pas été le cas. 

J'ai résolu le problème en supprimant l'OLYDELATEUR 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

20
zeeawan

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

16
nisah

Cela fonctionne pour moi -:

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

J'espère que ça aide

15
stevensagaar

Améliore ton git. GitHub a répondu à cette question à https://help.github.com/articles/error-the-requested-url-returned-error-403 .

12
gsf

Un code 403 est "Interdit". Le serveur a vu votre demande et l'a refusée. Avez-vous la permission de pousser vers ce référentiel?

9
Nick Veys

Si vous utilisez Windows, cela peut parfois arriver car Windows stocke les informations d'identification du référentiel externe (dans notre cas, github) dans son propre stockage. Et les informations d'identification sauvegardées peuvent être différentes de celles dont vous avez besoin en ce moment. 

 enter image description here

Donc, pour éviter ce problème, il suffit de trouver github dans ce stockage et de supprimer les informations d'identification enregistrées. Après cela, tout en poussant, git demandera vos identifiants et vous permettra de pousser.

9
Andrew Gans

J'ai eu un correctif très simple à cela. Je n'ai fait que modifier le fichier de configuration git différemment après le clonage du référentiel. L'URL d'origine distante est ce que vous devez modifier dans votre fichier config par défaut. Il devrait ressembler à vu ci-dessous

[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
9
larrytech

Deviner. J'ai cloné sur HTTPS. La configuration de mes clés publiques SSH, le clonage sur SSH et l'application sur SSH ont résolu le problème.

7
Mike
  1. Cliquez sur votre référentiel
  2. Sur le côté droit, cliquez sur "Paramètres" 
  3. Sur le panneau d'options de gauche, cliquez sur "Collaborateurs".
  4. Ajoutez le nom de la personne que vous connaissez dans GitHub
  5. Cliquez sur "Ajouter des collaborateurs"

Après cela, notre "Push to Git" a bien fonctionné.

7
Krishna
7
SMSM

Faites ceci pour un correctif temporaire

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

3
x0v

changer de

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

à

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

Ça marche! 

Ne pas oublier le "git" avant le "@".

3
JimmyDong

Aucune des réponses ci-dessus n'a fonctionné pour mon compte enterprise GitHub. Suivez ces étapes pour pousser via la méthode de génération de clé ssh. 

Créez un repo . Assurez-vous qu’il contient au moins un fichier (même le fichier README) Générez la clé ssh: ssh-keygen -t rsa -C "[email protected]" Copiez le contenu du fichier ~/.ssh/id_rsa. Publiez vos clés SSH dans les paramètres de votre compte GitHub . Testez la clé SSH: ssh -T [email protected] clone the repo: git clone git://github.com/username/your-repository Maintenez cd dans votre dossier de clonage git et faites: git remote set-url Origin [email protected]:username/your-repository.git LISEZMOI) et faites ensuite:

git add -A git commit -am "my update msg" git Push -u Origin master

3
chandresh

Ce qui a fonctionné pour moi:

Mon repo était un fork et restait lié au repo des parents.

git remote -v

Vous dira si c'est votre repo ou non.

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

Vous permet de le reconfigurer dans votre référentiel, puis de vous autoriser à pousser.

3
timbo7io

Ajoutez le nom d'utilisateur dans l'URL et cette erreur se produit car la commande git frappe http au lieu de https. Alors définissez l'URL

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

Après quoi vous serez invité à entrer votre mot de passe: 

3
venkat sam

Pour ceux qui sont curieux, ma machine mac vs vm lucid a fonctionné sous git 1.7.6 vs 1.7.0.4, et le même dépôt a été expulsé de mon mac (nouveau git) mais pas de la VM

Même version curl. Peut-être que certaines versions plus anciennes de Git ne prennent pas en charge les envois https?

3
patcon

J'ai rencontré la même erreur et la cause était stupide - je n'avais pas le privilège de m'engager dans le référentiel sélectionné. Je ne savais pas que je devais 

  1. bifurque le projet sélectionné en premier
  2. cloner le dépôt localement 
  3. commettre mes modifications localement
  4. Poussez les modifications sur mon clone github
  5. demande de traction demande en amont

comme décrit dans https://help.github.com/categories/63/articles

3
Leos Literak

Pour ceux dont l'autorisation est refusée, 403 erreur en utilisant ssh (selon Xiao ) ou http urls Essayez ces commandes 

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

>git config --unset-all credential.helper

avec des droits d'administrateur 

>git config --system --unset-all credential.helper
3
Moosa Baloch

J'ai compris ma propre variante de ce problème.

Le problème ne changeait pas le protocole de https en ssl, mais plutôt la définition du nom d'utilisateur et du courrier électronique global de Github! (J'essayais de pousser vers un dépôt privé

git config --global user.email "[email protected]"

git config --global user.name "Your full name"
2
Lucas Ou-Yang

Github a une page dédiée à la résolution de cette erreur:

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

Dans mon cas, il s'est avéré qu'en utilisant une nouvelle version de git (1.8.5.2), ce problème était résolu.

2
AndyL

Cela m'est arrivé parce que mon collègue a accidentellement désactivé le référentiel à partir duquel ce référentiel a été créé. Il suffit de vérifier pour vous assurer que le dépôt git (hub) d'origine existe toujours.

1
ftrotter

Le clonage avec ssh au lieu de https a résolu ce problème pour moi.

ssh cloning

1
kilojoules

Cela pourrait être un problème de comptabilité. Le compte Github du propriétaire du dépôt en amont (privé) peut ne pas être financier. J'ai vu cela où la carte de crédit du client a expiré.

1
gnoll110

Après avoir changé https en http dans l'application Gitbox, cela a fonctionné pour moi. 

1
Alex Stone

ce qui a fonctionné pour moi est de passer de http à ssh:

git remote rm Origin
git remote add Origin [email protected]:username/repoName.git

puis le vérifier avec git remote -v

1
Connor Leech

La seule chose qui m'a aidé est cette réponse à une autre question:

La célèbre "ERREUR de Git: L'autorisation de .git refusée à l'utilisateur"

En résumé, si vous êtes comme moi avec Windows, recherchez "Gestionnaire des informations d'identification" et ouvrez-le. Vous pouvez y trouver vos identifiants Git. Changer le nom d'utilisateur (que vous devez avoir changé pour quelque chose d'autre).

Vous pouvez également le trouver sous "Panneau de configuration" - "Compte d'utilisateur" - "Gestionnaire d'informations d'identification". 

1
WesternGun

Dans mon cas, l'erreur est due à l'absence d'autorisations dans le référentiel.

1
Sebastián Lara

Vous avez le même genre d'erreur. Impossible d’accéder à 403 . Dans My Case, aucune de ces réponses n’a fonctionné. Alors j'ai essayé le dessous, ça a marché.

  1. Supprimer user.email et user.password de git config
  2. Supprimez les informations d'identification enregistrées du trousseau.
  3. Redémarrez le système.
  4. Maintenant, appuyez sur le code, vous demandera à l'utilisateur/passe
  5. Procéder en donnant utilisateur/pass. 

Code poussé avec succès 

! macOS!

1
name-it

Parfois, il n’ya rien de mal avec les paramètres, et il ya des problèmes sur les serveurs github.

https://status.github.com - statut actuel de github :)

1
noisy

J'ai eu ce problème en ce moment, et il s'est avéré que mon fichier de serveur /etc/resolver.conf avait une mauvaise adresse IP. Pourrait aider les autres.

1
RichardW11

Dans mon cas, je rencontrais l'erreur ci-dessus pour mon l'identifiant de l'email avec github n'était pas encore vérifié . GitHub donnait cet avertissement d'email non vérifié.

La vérification de l'e-mail, puis l'envoi ont fonctionné pour moi.

1
hitesh israni

J'ai eu le même problème. Mon cas était: j’avais initialisé git repo localement avant de le créer sur github, puis j’ai essayé d’ajouter une branche distante. J'ai résolu mon problème en changeant l'ordre des actions: j'ai créé un repo sur le site github, puis je l'ai inité localement. Mais ce n'est pas le cas de ceux qui aiment faire tout en ligne de commande comme moi.

1
Yauhen

J'étais précédemment connecté en tant qu'utilisateur différent de github (disons utilisateur1). Pour mon compte github actuel (par exemple, utilisateur2), j’ai été en mesure de cloner un dépôt nouvellement créé dans github mais je n’étais pas en mesure d’appliquer les modifications.

J'ai essayé toutes les réponses mentionnées ci-dessus, y compris la suppression des informations d'identification de Windows Credential Manager, mais rien n'a fonctionné. 

Finalement, ce qui a fonctionné a été de lancer github Windows App. Accédez à Paramètres-> Options et voilà le nom de l'utilisateur connecté était utilisateur1. Cliquez sur Déconnexion de cet utilisateur et connectez-vous en tant qu'utilisateur requis dans ce cas, utilisateur2

 enter image description here

0
asolanki

Pour résoudre ce type d'erreur pendant l'erreur Push, vous devez vous rendre dans le fichier de configuration du répertoire .git et modifier la ligne donnée:

precomposeunicode = true
[remote "Origin"]
http://[email protected]:abc/xyz.git

Changer la ligne à ceci 

precomposeunicode = true
[remote "Origin"]
ssh://[email protected]/abc/xyz.git

Cela a résolu mon problème.

0
rahul kumar

Essayez de créer votre origine en utilisant la clé SSH au lieu de HTTP.

Si vous pouvez lancer à l'aide de la clé SSH, l'URL commence par:

[email protected]:<YOUR REPO URL>

Maintenant, vous pouvez ajouter, valider et pousser vers votre branche correspondante

0
KPavan Kumar

Si aucune des solutions ne fonctionne pour vous, lisez rapidement cette réponse [pourrait être votre cas]:

Pour ceux d'entre vous comme moi qui ont passé par toutes ces [grandes] réponses mais qui ont toujours du mal à pousser vos commits, il y a potentiellement une autre raison pour l'échec d'une poussée. 

Vérifiez votre référentiel git (où qu’il se trouve, GitHub, BitBucket, ...) pour voir si tout va bien. Dans mon cas, après avoir passé beaucoup de temps à comprendre mon problème (même en blâmant la nouvelle édition de PyCharm! :)), je me suis rendu compte que j'avais fait des bêtises et que mon dépôt BitBucket avait dépassé la limite de 2 Go et était automatiquement passé en lecture seule. repo et c’est la raison pour laquelle je ne pouvais pas pousser de nouveau commit. Et, cela provoque exactement la même erreur (403: impossible d'accéder à l'URL.) 

0
Pedram

assurez-vous que vous disposez des autorisations suffisantes pour envoyer au référentiel si vous le faites, essayez alors d'exécuter ces commandes

git config --global user.email youremail@domain.
git config --global user.name username
git config --global user.password yourpassword

espérons que cela aide quelqu'un

0
maheshmnj

Fournissez un accès en écriture à l'utilisateur.

Après avoir fourni l'accès, retirez le code une fois, puis appuyez dessus.

0
anil

J'ai eu ce problème parce que j'avais un proxy, je n'ai pas pu accéder à mon référentiel

C:\Users\YourUser\.gitconfig

supprimer le proxy bullshit et cela devrait fonctionner

enter image description here

puis essayez à nouveau de cloner par gitbash

 git clone http://********************

enter image description here

0

Une autre raison possible est que vous avez peut-être dépassé leur limite de plan.

Pour résoudre ce problème et restaurer l'accès en écriture au référentiel, vous devez soit mettre à niveau votre planification de compte, soit supprimer certains de vos collaborateurs.

0
Jacob Nelson

J’ai eu le même problème avec bitbucket mais j’ai attendu 5 minutes, puis j’ai essayé à nouveau et cela fonctionnait bien. Parfois, cela pourrait être un problème avec le fournisseur.

0
Promo

Une autre raison pourrait être la vérification du courrier électronique sur github.com

Connectez-vous simplement à github.com et vérifiez s’il n’y a pas de message pour vous confirmer votre adresse e-mail. Confirmez si nécessaire.

0
Denis

Si vous utilisez BitBucket, votre compte peut être mis en lecture seule pour les raisons suivantes:

  • Nous mettons à niveau nos segments de stockage et ne pouvons accepter de nouvelles données.
  • Nous apportons des modifications qui ne nécessitent aucune nouvelle écriture.
  • Le propriétaire du référentiel doit mettre à niveau son compte pour accepter un plus grand nombre d'utilisateurs.

https://confluence.atlassian.com/display/BITBUCKET/Repositories+in+Read-Only+Mode

0
luckyape

Editez le fichier .git/config dans votre répertoire repo

Trouver url = entrée dans la section [remote "Origin"]

Changez-le de url = https://github.com/rootux/ms-Dropdown.git à https: //[email protected]/rootux/ms-Dropdown.git

où USERNAME est votre nom d'utilisateur github

=> Cette solution a fonctionné pour moi.

0
Vinay Sikarwar

J'ai eu le même problème avec cette même erreur en me disant cela 

remote: permission à l'utilisateur/repo.git refusée à l'utilisateur2.

Le problème avec ceci est que sous Windows et Mac, il est stocké en cache, un chemin clé vers Github.

Pour résoudre ce problème sur Mac, il suffit de le faire

git credential-osxkeychain erase

Rien ne sera invite à la console.

Ensuite, faites un Push normal et il devrait vous permettre de réécrire votre nom d'utilisateur et votre mot de passe depuis Github.

git commit -m "First Commit"

Pour les utilisations de fenêtre, voir les réponses ci-dessus ^ avec les informations d'identification stockées

0
Gastón Saillén