Pregunta Empujar a Git devolviendo el código de error 403 fatal: la solicitud HTTP falló


Pude clonar una copia de este repositorio sobre HTTPS autenticado. Realicé algunas confirmaciones y quiero volver al servidor de GitHub. Usando Cygwin en 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

También configúrelo con modo detallado. Todavía estoy bastante desconcertado.

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

Estas son las versiones de git y curl que tengo:

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


origen


Respuestas:


Acabo de tener el mismo problema y descubrí cuál es la causa.

Github parece solo compatible con ssh forma de leer y escribir el repositorio, aunque el modo https también muestra 'Leer y escribir'.

Así que debes cambiar tu configuración de repos en tu PC a ssh way:

  1. editar .git/config archivo debajo de su directorio de repositorio
  2. encontrar url=entrada en la sección [remote "origin"]
  3. cambiarlo de url=https://MichaelDrogalis@github.com/derekerdmann/lunch_call.git a url=ssh://git@github.com/derekerdmann/lunch_call.git. es decir, cambie todos los textos antes @ símbolo para ssh://git
  4. Salvar config archivar y salir ahora podrías usar git push origin master sincronizar su repositorio en GitHub

717
2017-10-14 18:26



Definitivamente ser capaz de iniciar sesión usando https protocolo, primero debe configurar su credencial de autenticación al idiota URI remoto:

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

Luego se le pedirá una contraseña cuando intente git push.

De hecho, esto está en el formato de autenticación http. También puedes establecer una contraseña:

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

Debe tener en cuenta que si hace esto, su contraseña de github se almacenará en texto sin formato en su directorio .git, lo cual es obviamente indeseable.


362
2017-07-06 19:41



Una pequeña adición a La respuesta de Sean.

En lugar de editar .git/config archivo de forma manual, puede usar git remote set-url mando.

En tu caso, debería ser:

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

Me resulta más fácil y más limpio que jugar con archivos de puntos.


96
2018-06-04 22:29



Editar .git/config archivo debajo de su directorio de repositorio

Encontrar url= entrada en la sección [remote "origin"]

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

dónde USERNAME es tu nombre de usuario github


47
2017-11-07 09:39



Las otras respuestas que sugieren cambiar a SSH tipo de perder el punto. HTTPS es compatible, pero debe iniciar sesión con su contraseña GITHUB, no con su frase de contraseña SSH (que era lo que me estaba dando el mismo error exacto).

Estaba teniendo el mismo problema, pero al asegurarme de usar mi contraseña real de GitHub en el indicador de contraseña del terminal, solucioné la solución sin alterar la configuración ni recurrir a SSH.

La razón por la que es importante señalar esto es que muchas instituciones públicas (como mi escuela) bloquearán SSH, pero permitirán HTTPS (que es la única razón por la que comencé a clonar a través de HTTPS en primer lugar).

Espero que ayude a alguien más a tener el mismo problema ...


40
2018-01-17 17:27



Mismo error y resolución en Mac OS X.

Todo estaba funcionando bien hasta que creé un nueva cuenta en GitHub e intenté empujar

$ git push -u origin master

Y obtuve el error:

remoto: Permiso para NEWUSER / NEWREPO.git denegado a OLDUSER. fatal: no se puede acceder 'https://github.com/NEWUSER/NEWREPO.git/': La URL solicitada arrojó el error: 403

Debería haberse arreglado estableciendo el nombre.usuario para el repositorio global o actual

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

Pero no fue así.

Lo solucioné eliminando el OLDUSER asociado con GitHub desde la aplicación Keychain Access en la sección Contraseñas. Luego, el comando push fue exitoso.

$ git push -u origin master

referencia


17
2017-11-10 11:36



Creo que @deepwaters obtuvo la respuesta correcta para versiones anteriores. La URL HTTPS debe tener el nombre de usuario. Tenía git 1.7.0.4 y git push origin master Ni siquiera pediría una contraseña hasta que lo agregue.


14
2018-06-27 14:44



Esto funciona para mí:

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

Espero eso ayude


13
2017-09-27 21:41