git devuelve el error http 407 del proxy después de CONNECT

95

Tengo un problema al conectarme a github desde mi PC, usando git. Sistema Win 7.

Tengo conexión a través de proxy, así que lo especifiqué en los archivos de configuración de git (tanto en la carpeta general de git como en la carpeta de repositorio de git). Para hacer esto, ingresé la siguiente línea a mi git bush:

$ git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>

La forma en que funciona en otros programas (por ejemplo: maven) se ve así:

<username> - my login to our corp system
<userpsw> -my password to corporat system
<proxy> - 10.65.64.77
<port> - 3128

Pero cuando intento presionar o clonar mi repositorio, recibo

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

Ya trato de ingresar no solo mi nombre de usuario sino también el dominio \ nombre de usuario, cambié mi contraseña en caso de que haya problemas con las tablas de códigos de idioma. E incluso ingresé una contraseña incorrecta. El error siguió siendo el mismo.

Cuando ingresé en '10 .65.64.177.com 'e intenté presionar el repositorio, recibí:

fatal: unable to access '<repo github link>': Failed connect to github.com:3128; No error

Simplemente no sé qué intentar.

Olga Chernyavskaya
fuente
¿Duplicado de stackoverflow.com/questions/8561671 ? Vea mi respuesta allí sobre el proxy https.
thinkOfaNumber
1
Tuve el mismo problema después de haber actualizado mi contraseña de Windows en un entorno de AD. Resulta que solo tuve que reiniciar mi servidor proxy (cntlm).
Aaron C

Respuestas:

85

Lo que funcionó para mí es algo similar a lo que propone rohitmohta; en el símbolo del sistema de DOS normal (no en git bash):

primero

git config --global http.proxy http://username:password@proxiURL:proxiPort

y en algunos casos también

git config --global https.proxy http://username:password@proxiURL:proxiPort

luego

git config --global http.sslVerify false

(Confirmo que es necesario: si se establece en verdadero, aparece el error "Problema de certificado SSL: no se puede obtener el certificado del emisor local")

en mi caso, no es necesario definir la variable all_proxy

y finalmente

git clone https://github.com/someUser/someRepo.git
Vincent F
fuente
1
No necesitaba "git config --global http.sslVerify false", pero esto probablemente depende de la configuración del proxy.
2016
1
Esta respuesta funciona y debe marcarse como correcta.
Nadeem Iqbal
Necesitaba hacerlo en git bash, no en DOS para mí. ¡Noté que DOS no hizo nada! es decir. compruébalo haciendo: git config --global -l
theQuestionMan
¿En qué se git config --global http.proxy http://username:password@proxiURL:proxiPortdiferencia la respuesta de la pregunta git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>además de ser menos correcta, porque uno necesita especificar el host del proxy , no la URL ?
Michel Jung
Funciona a la
perfección
38

Tuve que configurar los 4 cosas en .gitconfigcon:

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port

Solo entonces la clonación tuvo éxito.

Miroslav Mocek
fuente
Probé todas las opciones mencionadas aquí y todavía no me funciona. :(
Xavier Geoffrey
¿Por qué diablos todos proponen eludir la verificación SSL? ESTO ES INSEGURO y podría comprometer su sistema.
flederwiesel
3
@flederwiesel Porque los proxies corporativos son malvados y causan todo tipo de estupidez, como tener que almacenar sus credenciales de dominio en texto sin cifrar en media docena de lugares para poder acceder a recursos proxies. Y forzar el uso de certificados raíz no seguros emitidos por la empresa, o eludir / ignorar la verificación SSL por completo. Es muy triste.
ggranum
36

El siguiente comando es necesario para forzar a git a enviar las credenciales y el método de autenticación al proxy:

git config --global http.proxyAuthMethod 'basic'

Fuente: https://git-scm.com/docs/git-config#git-config-httpproxyAuthMethod

Marijus Ravickas
fuente
2
¡Esto fue lo que funcionó para mí por fin! después de configurar el proxy en el archivo de configuración.
Dhanesh KM
3
Esta fue también la pieza que me faltaba. Gracias. (Normalmente no me toco con los comentarios de 'yo también', pero esta respuesta es bastante baja y necesita más amor).
ggranum
¡Esto es exactamente lo que faltaba!
ivspenna
Esta terminó siendo la única opción de configuración de git que necesitaba, ya que mi variable de entorno https_proxy estaba configurada en / etc / environment.
Rakurai
36

Tal vez ya esté utilizando la configuración de proxy del sistema ; en este caso, desarmar todos los proxies de git funcionarán:

git config --global --unset http.proxy
git config --global --unset https.proxy
rekinyz
fuente
1
Esto al menos evitó que apareciera el error y generó una solicitud de nombre de usuario / contraseña. Parece que el cliente de git está configurando incorrectamente el proxy de forma predeterminada a veces. He tenido el mismo error al usar SourceTree de Atlassian.
Kelly S. French
¡Esto me resolvió el problema en Ubuntu 14.04 después de mucho rascarse la cabeza!
Tim Ebenezer
2
Esto también me resolvió al usar SourceTree, gracias.
TomSW
Recibí este error al intentar instalar homebrew ... esto resolvió mi problema. Gracias.
joeCarpenter
Gracias, esto es lo único que funcionó para mí cuando trabajaba desde una ubicación remota a través del túnel VPN.
Matt
18

Me había enfrentado a un problema similar, detrás del firewall corporativo. Hice lo siguiente y pude clonar el repositorio usando git shell desde mi sistema con Windows 7 SP1.

  1. Establezca la variable de entorno 'all_proxy' para su usuario. Requerido por curl.

    export all_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  2. Establezca la variable de entorno 'https_proxy' para su usuario. Requerido por curl.

    export https_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  3. No estoy seguro de que esto tenga algún impacto. Pero hice esto y funcionó:

    git config --global http.sslverify false
    
  4. Utilice https: // para clonar

    git clone https://github.com/project/project.git
    

Nota-1: No utilice http: //. Usar eso puede dar el siguiente error. Se puede resolver usando https: //.

 error: RPC failed; result=56, HTTP code = 301

Nota-2: Evite tener @ en su contraseña. Aunque puede usar $.

rohitmohta
fuente
Puede usar https_proxy = DOMAIN \ "proxyuser: proxypwd" @ proxy.server.com: 8080 con comillas dobles y tener una @en la contraseña.
Vadorequest
1
Sé que hay un truco con base en cotizaciones "alrededor login:password. Pero en realidad lo intenté y git ignoró las comillas, por lo que @la contraseña lo estropeó. Si alguien tiene una solución alternativa, creo que vale la pena mencionarla.
Vadorequest
1
Probé todos los comandos sugeridos anteriormente, pero después de eso comencé a recibir el código HTTP 407 recibido del proxy después de CONNECT.
user130934
1
Puede codificar en URL cualquier carácter especial. Por ejemplo, @ se convierte en% 40. meyerweb.com/eric/tools/dencoder
Bryant
6

Tuve el mismo problema en un entorno Windows.

Acabo de resolverlo con NTLM-APS (un servidor proxy de autenticación de Windows NT)

Configure su proxy NTML y configure Git para ello:

git config --global http.proxy http://<username>:<userpsw>@localhost:<port>
pinei
fuente
3

Tenía el error 407 de Android Studio. Intenté agregar el proxy, pero no pasó nada. Descubrí que estaba relacionado con el certificado de la empresa, así que exporté el de mi navegador y lo agregué a Git.

Exportar desde navegador web

Opciones de Internet> Contenido> Certificados> Exportar (Siga el asistente, elegí el formato "Base 64 codificado X.509 (.CER))

En Git Bash

git config --global http.sslCAInfo c:\Utilities\Certificates\my_certificate

La siguiente página fue útil https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

Para agregar el proxy, como los otros hilos que usé

git config --global http.proxy proxy.company.net:8080
git config --global https.proxy proxy.company.net:8080
beaumondo
fuente
1
No sobrescribiría el almacén de claves predeterminado, "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"sino que le agregaría el certificado de su empresa (tal vez en un archivo separado como se describe en el enlace).
jansohn
3

Estaba enfrentando el mismo problema, así que primero verifiqué mi archivo npm lo que configuré, lo verifiqué con este comando: -

npm config get proxy

y descubro que configuré un proxy incorrecto y configuré mi proxy de deseo de la siguiente manera:

npm config set proxy http://xxx.xxx.xxx.4:8080   
npm config set https-proxy http://xxx.xxx.xxx.4:8080

Después de eso me funciona

user1989488
fuente
1
¿Estás seguro del comando: "npm config ...", porque supongo que debería ser "git config ..."
Gaurav Lad
2

Tu contraseña parece ser incorrecta. Vuelva a verificar sus credenciales.

neo china
fuente
1

Tuve el mismo problema en mi organización.

Después de muchos intentos, llegué a la siguiente solución:

  1. Solicité al administrador del sistema que cambiara el tipo de autenticación de proxy de Kerberos a NTLM. No estoy seguro de si era obligatorio (soy un ignorante en este asunto), pero mi solicitud fue aprobada.

  2. Después de eso agrego la configuración de Git

    git config --global http.proxyauthmethod ntlm

Solo después de eso pude clonar mi repositorio

Кирилл Захаров
fuente
1

También tuve el mismo problema e intenté resolverlo estableciendo explícitamente http.proxyAuthMethod en básico.

Después de ejecutar un seguimiento pcap entre mi servidor y el proxy, noté que la solicitud "HTTP CONNECT" enviada al proxy durante un clon de git todavía no tiene un encabezado "Proxy-Authorization" configurado en básico. Esto se debió a mi versión de git "1.8.3.1" que no admite http.proxyAuthMethod.

Después de instalar una versión más reciente de git (2.16.6), usando paquetes rpm foud aquí " https://repo.ius.io/7/x86_64/packages/g/ ", configurar http.proxyAuthMethod en básico finalmente tuvo un efecto en git comportamiento y luego mi clon de git tuvo éxito.

espero que esto ayude

marwaneL
fuente
1

FYI para la información de todos

Esta habría sido una solución adecuada para resolver el siguiente error

Received HTTP code 407 from proxy after CONNECT

Entonces los siguientes comandos deberían ser necesarios

git config --global http.proxyAuthMethod 'basic'
git config --global https.proxy http://user:pass@proxyserver:port

Lo que generaría la siguiente configuración

$ cat ~/.gitconfig
[http]
        proxy = http://user:pass@proxyserver:port
        proxyAuthMethod = basic
miserable
fuente
0

Creo que deberías concentrar tus esfuerzos después de llegar a este punto:

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

Esto significa que no se ha autenticado correctamente con el proxy. ¿Puede verificar que la contraseña que proporcionó en este paso sea correcta?

git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>
Slak
fuente
0

Este problema ocurrió hace unos días con mis repositorios de Bitbucket. Pude solucionarlo configurando la URL remota en http en lugar de https.

También intenté configurar proxies https en la línea de comando y git config, pero esto no funcionó.

$ git pull
fatal: unable to access 'https://[email protected]/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

Tenga en cuenta que estamos usando https:

$ git remote -v
origin  https://[email protected]/sacgf/x.git (fetch)
origin  https://[email protected]/sacgf/x.git (push)

Reemplace https url con http url:

$ git remote set-url origin http://[email protected]/sacgf/x.git
$ git pull
Username for 'https://bitbucket.org': username
Password for 'https://[email protected]': 
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 43 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (43/43), done.
From http://bitbucket.org/sacgf/x
   a41eb87..ead1a92  master     -> origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to ead1a920caf60dd11e4d1a021157d3b9854a9374.
d
Dave Lawrence
fuente
0

Experimenté este error debido a que mi red corporativa usaba un proxy mientras estaba en las instalaciones y un segundo proxy (completamente diferente) cuando se usaba una VPN desde el exterior. Originalmente estaba configurado para el proxy en las instalaciones, recibí el error y luego tuve que actualizar mi configuración para usar el proxy alternativo, fuera de las instalaciones, cuando trabajaba en otro lugar.

Shawn
fuente
0

Tuve un problema similar y lo resolví con los siguientes pasos:

** Agregar detalles de proxy en git **

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port
Sairam Kukadala
fuente
0

Esta configuración funciona en mi configuración:

[http]
    proxy = <your proxy>
[https] proxy = <your proxy>
[http]
    sslVerify = false
[https]
    sslVerify = false   
[credential]
    helper = wincred 
meol
fuente
0

Tengo el mismo problema al usar sourcetree La razón fue quizás cambiar el proxy del sistema de encendido a apagado mientras sourcetree estaba abierto. Por alguna razón, esto se escribió en el archivo de configuración de un proyecto. Esto se puede eliminar fácilmente en el árbol de origen mediante "Configuración" -> "Editar archivo de configuración". Simplemente elimínelo en http

Ska
fuente
0

Encontré el mismo problema al usar Git Bash. Cuando hice lo mismo en el símbolo del sistema, funcionó perfectamente.

Daniel
fuente
0

Eliminar "@" de la contraseña funcionó para mí y, de todos modos, nunca guarde @ en su contraseña, le dará problemas con maven y una mayor instalación

Codiee
fuente