Estoy tratando de que funcione el cliente de GitHub para Windows. Estoy en una computadora corporativa Win 7 x64 detrás de un servidor proxy y un firewall corporativos. Después de varias otras publicaciones y experimentando con múltiples combinaciones de variables de entorno y variables de configuración, he encontrado que la única forma de hacer que la clonación y las actualizaciones de inserción funcionen es mediante el uso de la variable de entorno HTTPS_PROXY, incluida mi ID de usuario y contraseña de dominio corporativo completo.
Esto es inaceptable desde el punto de vista de la seguridad. ¿Hay alguna otra forma de hacer que esto funcione?
Notas adicionales:
Lo siguiente funcionó:
- Agrega una variable de entorno llamada
HTTPS_PROXY
con el valorhttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080
Lo siguiente no funcionó:
- Omitir la identificación de usuario y la contraseña de la
HTTPS_PROXY
variable - Usando una variable de entorno llamada
HTTP_PROXY
(noS
) - Añadiendo el
http.proxy
variable al archivo de configuración global (.gitconfig
) - Añadiendo el
https.proxy
variable al archivo de configuración global
En todos los casos, el cliente de GitHub aún no reconoce el proxy: El contenido del archivo TheLog.txt
siempre muestra lo siguiente al inicio:
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy
Y es seguido por el resultado de varios intentos fallidos de autenticación de proxy, todos los cuales indican "Faltan credenciales".
fuente
Respuestas:
Agregue estas entradas a su archivo '.gitconfig' en su directorio de usuario (vaya a% USERPROFILE%):
Y si no desea almacenar su contraseña en texto plano, usaría un reenviador de proxy local como CNTLM que le permite dirigir todo el tráfico a través de él y puede almacenar las contraseñas con hash.
A diferencia de la pregunta original, si no le importa si su contraseña está en texto plano, agregue lo siguiente:
fuente
127.0.0.1
lugar delocalhost
, como se sugiere. En Windows, parece que localhost apunta primero a la dirección IPv6, que CNTLM no escucha. Como tal, git esperará hasta el tiempo de espera (varios minutos) antes de cambiar a la dirección IPv4.Probé todo lo anterior y no tuve éxito, lo único que me ayudó es CNTLM - http://cntlm.sourceforge.net/ .
Instálelo y ejecute cntlm -H, luego autentíquese en corp proxy, edite el archivo cntlm.ini con la salida de cntlm, reinicie el servicio de Windows. Actualice .gitconfig con:
Ahora cntlm hará toda la autenticación, y podrás usar GitHub (y Dropbox, por cierto) detrás del proxy corp. Al menos hasta el próximo cambio de contraseña :) (que vuelva a hacer cntlm -H)
fuente
Pude hacer que GitHub Shell funcionara con nuestro proxy corporativo. Estoy iniciando GitHub Shell y ejecuto el siguiente comando:
Realmente me gustaría hacer que la GUI también funcione. Pero no quiero configurar la variable de entorno global de Windows que contiene la información de mi credencial corporativa.
Curiosamente, el cliente GUI de GitHub puede conectarse a GitHub para la autenticación del usuario, pero el único problema es la clonación, extracción y envío de proyectos desde y hacia GitHub. Parece que el problema está en la implementación de git. Pude configurar git para que se ejecutara a través de nuestro proxy sin poner mis credenciales en la configuración global de git y estaba solicitando mis credenciales mientras realizaba solicitudes de extracción o inserción. Pero eso solo funcionaba en Git Shell.
fuente
Si está utilizando GitHub para Windows en una empresa, es muy probable que esté detrás de un firewall / proxy corporativo muy malo. GitHub para Windows aún no tiene los parámetros de proxy en su GUI para configurar las Opciones.
Para configurar GitHub para Windows para usar su proxy corporativo, edite el archivo .gitconfig que normalmente se encuentra en C: \ Users \ .gitconfig o C: \ Documents & Settings \ .gitconfig
Cierre GitHub para Windows; En .gitconfig, simplemente agregue
[https] proxy = proxy.yourcompany.com:port
fuente
También me encontré con este problema y traté de profundizar un poco en él también (desmonte el cliente).
El fragmento de código que genera los mensajes de registro que estamos viendo es el siguiente:
Entonces, este bloque solo registra la información del proxy que está configurada en IE . El mensaje de registro parece no tener relación con lo que hemos configurado en los archivos de configuración o las variables ambientales.
fuente
No sé sobre su firewall, pero mi campus usa proxy
¿usas algún git gui? EDITAR : acabo de notar que estás usando el cliente github para Windows
Estoy usando tortoisegit y es muy fácil configurar el proxy. Simplemente haga clic derecho en cualquier lugar, tortoisegit> red, habilite el servidor proxy y configure la dirección del servidor, el nombre de usuario y la contraseña. hecho
por lo que recuerdo, tortoisegit también funciona de forma inmediata con github.
fuente
Aquí está la forma de configurar el proxy en github
Aquí en mi universidad no tenemos nombre de usuario y contraseña, así que si nuestra IP de la universidad es 172.16.10.10 y el puerto es 8080
PS -> Yo recomiendo usar este método para configurar proxy como las cosas van a caer en su lugar como aprenderá más
Fuente
fuente
Encontré este blog útil. Describe el proxy ntlmaps . Probablemente sea menos seguro, pero funcionó sin problemas. No pude hacer funcionar cntlm.
fuente
Para nosotros, la solución involucró dos cosas diferentes. Primero, como se describe en la respuesta de Sogger, debe agregar las entradas a su
.gitconfig
archivo, ubicado en%USERPROFILE%
.En segundo lugar, (y esta era la pieza que nos faltaba), debe configurar una excepción en el servidor proxy para permitir que los usuarios no autenticados tráfico proxy
*.github.com
En iPrism, se ve así:
El problema no es tanto el proxy, sino la autenticación . Eludir el requisito de autenticación permite que la comunicación necesaria se clone y trabaje con proyectos utilizando el cliente de escritorio GitHub.
También tenga en cuenta que este enfoque no requirió almacenar credenciales de proxy en el
.gitconfig
archivo.fuente