¿Cómo consigo que Git use un servidor proxy?
Necesito verificar el código de un servidor Git, pero muestra "Solicitud agotada" cada vez. ¿Cómo puedo evitar esto?
Alternativamente, ¿cómo puedo configurar un servidor proxy?
¿Cómo consigo que Git use un servidor proxy?
Necesito verificar el código de un servidor Git, pero muestra "Solicitud agotada" cada vez. ¿Cómo puedo evitar esto?
Alternativamente, ¿cómo puedo configurar un servidor proxy?
Respuestas:
Comando a usar:
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
a su usuario proxyproxypwd
a su contraseña de proxyproxy.server.com
a la URL de su servidor proxy8080
al puerto proxy configurado en su servidor proxyTenga en cuenta que esto funciona para los repositorios http y https.
Si decide restablecer este proxy en cualquier momento y trabajar sin proxy:
Comando a usar:
git config --global --unset http.proxy
Finalmente, para verificar el proxy configurado actualmente:
git config --global --get http.proxy
%40
como reemplazo de la @
cadena de nombre de usuario / contraseña, aunque no lo he probado yo mismo. Espero eso ayude. :-)
Esto funcionó para mí, en Windows XP detrás de un firewall corporativo.
No tuve que instalar ningún proxy local ni ningún otro software además de git v1.771 desde http://code.google.com/p/msysgit/downloads/list?can=3
$ git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
$ git config --system http.sslcainfo /bin/curl-ca-bundle.crt
$ git remote add origin https://mygithubuser:mygithubpwd@github.com/repoUser/repoName.git
$ git push origin master
proxyuser = el usuario proxy que me asignó nuestro departamento de TI, en mi caso es el mismo usuario de Windows que uso para iniciar sesión en mi PC, el usuario de Active Directory
proxypwd = la contraseña de mi usuario proxy
proxy.server.com:8080 = el nombre del proxy y el puerto, lo obtuve del Panel de control, Opciones de Internet, Conexiones, botón Configuración de LAN, botón Avanzado dentro de la sección Servidor proxy, use el nombre del servidor y el puerto en la primera fila (http) .
mygithubuser = el usuario que uso para iniciar sesión en github.com
mygithubpwd = la contraseña para mi usuario de github.com
repoUser = el usuario propietario del repositorio
repoName = el nombre del repo
git config --global http.sslcainfo MY_NEW_CERTS_BUNDLE.crt
Además, los certificados descargados como se describe en simplicidade.org/notes/archives/2011/06/… (gracias a: stackoverflow.com/a/7206627/98528 ) lo hicieron por mí.
git://
protocolo.
Establezca una variable de sistema nombrada http_proxy
con el valor de ProxyServer:Port
. Esa es la solución más simple. Respectivamente, use https_proxy
como daefu señaló en los comentarios.
Establecer gitproxy (como menciona sleske) es otra opción, pero eso requiere un "comando", que no es tan sencillo como la solución anterior.
Referencias: http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
http_proxy
es necesaria para las URL HTTP y https_proxy
para las URL HTTPS. Alternativamente, uno podría establecer all_proxy
todas las URL. Ver ENVIRONMENT
sección en rizo (1) . Sin embargo, mientras configura las opciones de git-config, http.proxy
se usa tanto para URL HTTP como HTTPS. Ver http.proxy
en git-config (1) .
Si la forma de la línea de comandos de configurar su servidor proxy no funciona, probablemente solo pueda editar .gitconfig (en la raíz de su perfil, que puede ocultar tanto en C: \ Documents and Settings y en alguna unidad de red) y agregar esto :
[http]
proxy = http://username:password@proxy.at.your.org:8080
Sin embargo, YMMV, esto solo cubre el primer paso de la configuración de la línea de comandos. Es posible que también deba editar la configuración de git del sistema y no tengo idea de dónde lo ocultaron.
Como alternativa al uso git config --global http.proxy address:port
, puede configurar el proxy en la línea de comando:
git -c "http.proxy=address:port" clone https://...
La ventaja es que el proxy no se establece de forma persistente. En Bash, puede establecer un alias:
alias git-proxy='git -c "http.proxy=address:port"'
Si está utilizando ubuntu, haga lo siguiente ...
Paso 1: instale el sacacorchos
$ sudo apt-get install corkscrew
Paso 2: escriba un script llamado git-proxy.sh y agregue lo siguiente
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
Paso 3: haga que el script sea ejecutable
$ chmod +x git-proxy.sh
Paso 4: configure el comando proxy para GIT configurando la variable de entorno
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
Ahora use los comandos git, como
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
"$@"
lugar de $*
. Vea su manual de shell para más detalles.
Enfrenté el mismo problema debido a varios .gitconfig
archivos en Windows, seguimos los pasos a continuación para solucionarlo:
Paso 1: Abra Git BASH
Paso 2: busca .gitconfig
y ejecuta el siguiente comando:
git config --list --global --show-origin
Paso 3: copie el contenido a continuación en .gitconfig
:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
Intente poner lo siguiente en el archivo ~ / .gitconfig:
[http]
proxy = http://proxy:8080
[https]
proxy = http://proxy:8080
[url "https://"]
insteadOf = git://
Para el protocolo git (git: // ...), instale socat y escriba un script como:
#!/bin/sh
exec socat - socks4:your.company.com:$1:$2
hazlo ejecutable, ponlo en tu camino y en tu ~/.gitconfig
conjunto core.gitproxy
con el nombre de ese script.
socat STDIO PROXY:%proxy%:%1:%2,proxyport=%PROXYPORT%
set GIT_PROXY_COMMAND=path\to\script
para hacer que GIT use el proxy sin meterse con git config.
Hay algo que noté y quiero compartir aquí:
git config --global http.proxy http://<proxy address>:<port number>
El método anterior no funcionará para las URL ssh (es decir, git@github.com:<user name>/<project name>.git
):
git clone git@github.com:<user name>/<project name>.git // will not use the http proxy
Y las cosas no cambiarán si configuramos SSH sobre el puerto HTTPS ( https://help.github.com/en/articles/using-ssh-over-the-https-port ) porque solo cambia el puerto (22 por defecto ) la conexión ssh se conecta a.
(No es un hablante nativo de inglés, refine mis palabras si es necesario)
Trabajo en Windows XP en el trabajo (estado / gobierno), así que hice mi investigación y encontré esto aquí y funcionó para mí. Espero que esto ayude :)
La variable de entorno http_proxy
Si usa un servidor proxy o firewall, es posible que deba configurar la variable de entorno http_proxy para acceder a alguna url desde la línea de comandos. Ejemplo: instalar ppm para perl o aplicar rpm en linux, actualizar ubuntu
Establezca la variable http_proxy con el nombre de host o la dirección IP del servidor proxy: http_proxy = http: // [proxy.example.org]
Si el servidor proxy requiere un nombre de usuario y una contraseña, inclúyalos en el siguiente formulario: http_proxy = http: // [nombre de usuario: contraseña@proxy.example.org]
Si el servidor proxy usa un puerto que no sea 80, incluya el número de puerto: http_proxy = http: // [nombre de usuario: contraseña@proxy.example.org: 8080]
Windows XP
- Abra el Panel de control y haga clic en el ícono Sistema.
- En la pestaña Avanzado, haga clic en Variables de entorno.
- Haga clic en Nuevo en el panel Variables del sistema.
- Agregue http_proxy con la información de proxy adecuada (consulte los ejemplos anteriores).
Linux, Solaris o HP-UX
Establezca la variable de entorno http_proxy utilizando el comando específico de su shell (por ejemplo, establecer o exportar). Para que este cambio sea persistente, agregue el comando al archivo de perfil apropiado para el shell. Por ejemplo, en bash, agregue una línea como la siguiente a su archivo .bash_profile o .bashrc:
- http_proxy = http: // [nombre de usuario: contraseña @ nombre de host: puerto];
- export $ http_proxy
Además de estas respuestas, me pareció útil considerar estos 2 puntos:
Es posible que deba aplicar un esquema de autenticación:
[http]
# https://github.com/git/git/blob/master/Documentation/config.txt
proxyAuthMethod = anyauth|basic|digest|negotiate|ntlm
Además, normalmente con el esquema de autenticación NTLM, uno puede necesitar proporcionar explícitamente el dominio AD.
En git bash:
echo %userdomain%
Y actualice el http.proxy en consecuencia:
git config --global http.proxy http://DOMAIN\\proxyuser:proxypwd@proxy.server.com:8080
De todos modos, la investigación puede ser ayudada agregando registros CURL:
export GIT_CURL_VERBOSE=1
git config --global http.proxyAuthMethod basic
. Git gersion 2.8.3 no envió ninguna autenticación hasta que configuré este parámetro de configuración.
Si tiene tsocks o proxychains instalados y configurados, puede
$ tsocks git clone <you_repository>
o
$ proxychains git clone <you_repository>
para acortarlo, creé un enlace de símbolo /usr/bin/p
para proxychains
poder usarlo así
p git clone <you_repository>
y puedo usarlo para representar cualquier comando,
p <cmd-need-be-proxied>
por cierto, proxychains no se actualiza durante mucho tiempo, es posible que desee probar proxychians-ng
Configurar el proxy git en la terminal
Si
Establecerlo globalmente una vez
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
si desea configurar el proxy para un solo proyecto git (puede haber algunas situaciones en las que no desee usar el mismo proxy o ningún proxy para algunas conexiones git)
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
si desea mostrar la configuración actual del proxy
git config --list
si quieres eliminar proxy globalmente
git config --global --unset http.proxy
git config --global --unset https.proxy
si desea eliminar el proxy para solo una raíz git
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
aquí está la configuración del proxy
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
Seguí la mayoría de las respuestas recomendadas aquí. Primero recibí el siguiente error:
fatal: no se puede acceder a ' https://github.com/folder/sample.git/ ': schannel: next InitializeSecurityContext falló: Error desconocido (0x80092012) - La función de revocación no pudo verificar la revocación del certificado.
Luego probé el siguiente comando de @Salim Hamidi
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
Pero recibí el siguiente error:
fatal: no se puede acceder a ' https://github.com/folder/sample.git/ ': se recibió el código HTTP 407 del proxy después de CONECTAR
Esto podría suceder si el servidor proxy no puede verificar el certificado SSL. Por lo tanto, queremos asegurarnos de que la verificación SSL esté desactivada (no se recomienda para sitios no confiables), por lo que he realizado los siguientes pasos que fueron recomendados por @Arpit pero con ligeros cambios:
1.Primero asegúrese de eliminar cualquier configuración de proxy anterior:
git config --global --unset http.proxy
2.Lista y obtén el contenido de gitconfig
git config --list --show-origin
3. Última actualización del contenido del archivo gitconfig de la siguiente manera:
[http]
sslCAInfo = C:/yourfolder/AppData/Local/Programs/Git/mingw64/ssl/certs/ca-bundle.crt
sslBackend = schannel
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
[https]
proxy = http://proxyuser:proxypwd@proxy.server.com:8080
sslverify = false
He intentado todas las respuestas anteriores y nada funcionó para mí, ya que había un problema de codificación de contraseña proxy.
Este comando funcionó:
git config --global http.proxy http://username@proxy.example.com:PortNumber
No ingrese la contraseña en su comando. Preguntará dinámicamente cuando intentes conectarte a cualquier repositorio de git.
Para usuarios de Windows: si funciona git config
o set http_proxy=
no, esta respuesta puede ayudar:
reemplace el git://
protocolo del repositorio git con http://
. Tenga en cuenta que tendrá que configurar el http_proxy
primero, de todos modos.
¡Después de probar incansablemente todas las soluciones en esta página, mi trabajo fue usar una clave SSH en su lugar!