plugin - Empujando a Git devolviendo el código de error 403 fatal: error en la solicitud HTTP
version control git (30)
- Haga clic en su repositorio
- En el lado derecho, haga clic en "Configuración"
- En el panel de opciones del lado izquierdo, haga clic en "Colaboradores"
- Agregue el nombre de la persona que conoce en GitHub
- Haga clic en "Agregar colaboradores"
Después de esto nuestro "Push to Git" funcionó bien.
Pude clonar una copia de este repositorio sobre HTTPS autenticado. Me he comprometido y quiero volver al servidor de GitHub. Utilizando 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
[email protected]/derekerdmann/lunch_call.git/info/refs
fatal: HTTP request failed
También configurarlo con el 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://[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
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
A veces no hay nada de malo en la configuración, y hay algunos problemas en los servidores github.
https://status.github.com - estado actual de github :)
Acabo de tener el mismo problema y acabo de descubrir cuál es la causa.
Github parece que solo admite la forma ssh de leer y escribir el repositorio, aunque la forma https también muestra "Lectura y escritura".
Entonces necesitas cambiar tu configuración de repositorio en tu PC a ssh way:
- edite el archivo
.git/config
en su directorio de repositorio - buscar
url=
entrada en la sección[remote "origin"]
- cámbielo de
url=https://[email protected]/derekerdmann/lunch_call.git
aurl=ssh://[email protected]/derekerdmann/lunch_call.git
. es decir, cambie todos los textos antes del símbolo@
assh://git
- Guarde el archivo de
config
y salga. ahora puedes usargit push origin master
para sincronizar tu repositorio en GitHub
Actualiza tu git. GitHub ha respondido esta pregunta en https://help.github.com/articles/error-the-requested-url-returned-error-403 .
Agregue el nombre de usuario como parte de la URL y este error ocurre porque el comando git está golpeando a http en lugar de https. Así que establece la url
git remote set-url origin https://<username>@github.com/Path_to_repo.git
Después de lo cual se le pedirá la contraseña:
Creo que @deepwaters obtuvo la respuesta correcta para versiones anteriores. La URL de HTTPS necesita tener el nombre de usuario. Tenía git 1.7.0.4 y git push origin master
ni siquiera pedía una contraseña hasta que la añadí.
Descubrí mi propia variación de este problema.
El problema no fue cambiar el protocolo de https a ssl, ¡sino configurar el nombre de usuario y correo electrónico globales de Github! (Estaba tratando de empujar a un repositorio privado.
git config --global user.email "[email protected]"
git config --global user.name "Your full name"
Después de cambiar https a http dentro de la aplicación gitbox, funcionó para mí.
Edite el archivo .git/config
en su directorio de repositorio
Buscar url=
entrada en la sección [remote "origin"]
url=https://github.com/rootux/ms-Dropdown.git
de url=https://github.com/rootux/ms-Dropdown.git
a https://[email protected]/rootux/ms-Dropdown.git
donde USERNAME
es tu nombre de usuario github
En realidad tenía una solución muy simple para esto. Todo lo que hice fue editar el archivo de configuración de git de manera diferente después de clonar el repositorio. La url de origen remoto es lo que necesita editar en su archivo de configuración predeterminado. Debería verse como se ve abajo
[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
Esto funciona para mí -:
git remote set-url origin https://[email protected]/user/repo.git
Espero eso ayude
Esto me sucedió porque mi compañero de trabajo deshabilitó accidentalmente el repositorio desde el cual se bifurcó este repositorio. Solo puede verificar que el repositorio original de git (hub) aún exista.
Github tiene una página dedicada a solucionar este error:
https://help.github.com/articles/https-cloning-errors
En mi caso, resultó que el uso de una nueva versión de git (1.8.5.2) resolvió este problema.
Las otras respuestas que sugieren cambiar a SSH fallan el punto. Se admite HTTPS, pero debe iniciar sesión con su contraseña de GITHUB, no su frase de contraseña SSH (que fue lo que me estaba dando el mismo error exacto).
Estaba teniendo el mismo problema, pero asegurándome de usar mi contraseña real de GitHub en el indicador de la contraseña del terminal reparé la solución sin alterar la configuración, o recurriendo a SSH.
La razón por la que es importante tener en cuenta esto, es que muchas instituciones públicas (como mi escuela) bloquearán SSH, pero permiten HTTPS (que es la única razón por la que comencé a clonar sobre HTTPS en primer lugar).
Espero que ayude a alguien más a tener el mismo problema ...
Lo averigué. He clonado sobre HTTPS. Configurando mis claves SSH públicas, clonando sobre SSH y presionando sobre SSH lo solucioné.
Lo que funcionó para mí es cambiar de http a ssh:
git remote rm origin
git remote add origin [email protected]:username/repoName.git
entonces compruébalo con git remote -v
Lo que funcionó para mí:
Mi repo era una bifurcación y todavía estaba vinculado al repo de los padres.
git remote -v
Te diré si es tu repo o no.
git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git
Le permite reconfigurarlo a su repositorio y luego le permite presionar.
Me enfrenté al mismo error y la causa fue estúpida: no tenía privilegios para comprometerme con el repositorio seleccionado. No sabia que tengo que
- tenedor seleccionado proyecto primero
- clonar repositorio localmente
- cometer mis cambios localmente
- empujar cambios a mi clon github
- solicitud de solicitud de extracción a aguas arriba
como se describe en https://help.github.com/categories/63/articles
Mismo error y resolución en Mac OS X.
Todo funcionaba bien hasta que creé una nueva cuenta en GitHub e intenté empujar
$ git push -u origin master
Y consiguió el error:
remoto: permiso para NEWUSER / NEWREPO.git denegado a OLDUSER. fatal: no se puede acceder a '' https://github.com/NEWUSER/NEWREPO.git/ '': la URL solicitada devolvió el error: 403
Debería haberse solucionado configurando user.name 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 de la aplicación Keychain Access en la sección de Contraseñas. Entonces el comando de empuje fue exitoso.
$ git push -u origin master
Para aquellos que tienen permiso denegado el error 403 mientras usaban ssh (según Xiao ) o http urls, intente estos comandos
>git config --global --unset-all credential.helper
>git config --unset-all credential.helper
con derechos de administrador
>git config --system --unset-all credential.helper
Para cualquier persona curiosa, mi máquina mac vs lucid vm corrió git 1.7.6 vs 1.7.0.4, y el mismo repo se podía enviar desde mi mac (git más reciente) pero no la VM
La misma versión de rizo. Tal vez algunas versiones anteriores de git no admiten los empujes https?
Para poder iniciar sesión definitivamente usando el protocolo https
, primero debe configurar su credencial de autenticación en el URI remoto de git:
git remote set-url origin https://[email protected]/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 podría establecer una contraseña:
https://youruser:[email protected]/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 que obviamente es indeseable.
Podría ser un problema contable. La cuenta Github del propietario del repositorio upstream (privado) puede no ser financiera. He visto esto donde expiró la tarjeta de crédito del cliente.
Si está usando Windows, a veces esto puede suceder porque Windows almacena las credenciales para el repositorio externo (en nuestro caso, github) en su propio almacenamiento. Y las credenciales que se guardaron allí pueden ser diferentes de las que necesita ahora.
Entonces, para evitar este problema, simplemente encuentre github en este almacenamiento y elimine las credenciales guardadas. Después de esto, mientras presiona git solicitará sus credenciales y le permitirá empujar.
Simplemente agregue su nombre de usuario en la url de esta manera: https://[email protected]/islam9/bootstrap-rtl
Por favor revise: http://islamkhalil.wordpress.com/2012/12/06/github-error-pushing-to-git-returning-error-code-403-fatal/
Tuve el mismo problema. Mi caso fue: Inicialicé git repo localmente antes de crearlo en github, luego intenté agregar una sucursal remota. Resolví mi problema cambiando el orden de las acciones: creé un repositorio en el sitio de github y luego lo inicié localmente. Pero no es el caso de los que les gusta hacer todo desde la línea de comandos como yo.
Tuve este problema en este momento, y resultó que mi servidor /etc/resolver.conf tenía una dirección IP incorrecta. Podría ayudar a los demás.
Un código 403 es "Prohibido". El servidor vio su solicitud y la rechazó. ¿Tienes permiso para empujar a ese repositorio?
Una pequeña adición a la respuesta de Sean .
En lugar de editar el archivo .git/config
manualmente, puede usar git remote set-url
comando git remote set-url
.
En tu caso debería ser:
git remote set-url origin ssh://[email protected]/derekerdmann/lunch_call.git
Me parece más fácil y limpio, que jugar con archivos de puntos.
cambiarlo de
url=https://[email protected]/derekerdmann/lunch_call.git
a
url=ssh://[email protected]/derekerdmann/lunch_call.git
¡Funciona!
No olvides el "git" antes del "@".