tag - github desktop linux
El cliente de Windows GitHub detrĂ¡s del proxy (9)
Agregue estas entradas a su archivo ''.gitconfig'' en su directorio de usuario (vaya a% USERPROFILE%):
[http]
proxy = http://<proxy address>:<proxy port>
[https]
proxy = https://<proxy address>:<proxy port>
Y si no quiere 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 hash.
A diferencia de la pregunta original, si no le importa si su contraseña está en texto sin formato, agregue estos:
[http]
proxy = http://<username>:<password>@<proxy address>:<proxy port>
[https]
proxy = https://<username>:<password>@<proxy address>:<proxy port>
Estoy tratando de hacer funcionar el cliente de GitHub para Windows. Estoy en una computadora corporativa Win 7 x64 detrás de un proxy corporativo y un firewall. Después de varias otras publicaciones y de experimentar con múltiples combinaciones de variables de entorno y variables de configuración, he encontrado que la única forma de hacer que clonen y actualicen las actualizaciones es mediante el uso de la variable de entorno HTTPS_PROXY, incluida mi identificación 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ó:
- Agregue una variable de entorno llamada
HTTPS_PROXY
con el valorhttp://[domain]/[userid]:[password]@someproxy.mycorp.com:8080
Lo siguiente no funcionó:
- Omitir identificación de usuario y contraseña de la variable
HTTPS_PROXY
- Usar una variable de entorno llamada
HTTP_PROXY
(noS
) - Agregar la variable
http.proxy
al archivo de configuración global (.gitconfig
) - Agregar el
https.proxy
varaible 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 del proxy, todos los cuales indican "Faltan las credenciales".
Aquí está la forma de establecer el proxy en github
git config --global http.proxy http://<username>:<pass>@<ip>:<port>
git config --global https.proxy http://<username>:<pass>@<ip>:<port>
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
git config --global http.proxy http://172.16.10.10:8080
git config --global https.proxy http://172.16.10.10:8080
PD -> Recomiendo usar este método para configurar el proxy ya que las cosas se pondrán en su lugar ya que aprenderás más
Source
Intenté todo lo anterior - y no tuve éxito, lo único que me ayudó fue CNTLM - http://cntlm.sourceforge.net/ .
Instálelo y ejecute cntlm -H, luego de autenticar al proxy corp, edite el archivo cntlm.ini con el resultado de cntlm, reinicie el servicio de Windows. Actualiza .gitconfig con:
[https] proxy = localhost:3128
[http] proxy = localhost:3128
Ahora cntlm hará toda la autenticación, y usted podrá usar GitHub (y Dropbox, btw) detrás del proxy corp. Al menos hasta la próxima contraseña cambiar :) (que hacer cntlm -H cosas de nuevo)
No sé acerca de su firewall, pero mi proxy de uso del campus
usas cualquier git gui? EDITAR : acaba de notar que está utilizando el cliente github para Windows
Estoy usando tortoisegit y es muy fácil configurar el proxy. Simplemente haga clic derecho en cualquier lugar, escriba> 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 funcionará de fábrica con github.
Para nosotros, la solución involucró dos cosas diferentes. En primer lugar, como se describe en la respuesta de Sogger, debe agregar las entradas a su archivo .gitconfig
, que se encuentra en %USERPROFILE%
.
[http]
proxy = http://<proxy address>:<proxy port>
[https]
proxy = https://<proxy address>:<proxy port>
Segundo, (y esta fue la pieza que nos falta), debe configurar una excepción en el servidor proxy para permitir el tráfico de proxy no autenticado a *.github.com
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 funcione con proyectos que utilizan el cliente de escritorio GitHub.
También tenga en cuenta que este enfoque no requiere el almacenamiento de credenciales de proxy en el archivo .gitconfig
.
Pude hacer que GitHub Shell trabajara con nuestro proxy corporativo. Estoy comenzando GitHub Shell y ejecuto el siguiente comando:
export http_proxy=http://<username>:<password>@<corporate proxy>:3128
Realmente me gustaría hacer que la GUI también funcione. Pero no quiero configurar la variable de entorno global de Windows que contiene mi información de credenciales corporativas.
Extrañamente, GitHub GUI Client puede conectarse a GitHub para la autenticación de usuarios, pero el único problema es clonar, arrastrar y empujar proyectos desde y hacia GitHub. Parece que el problema es con la implementación de git. Pude configurar git para ejecutar a través de nuestro proxy sin poner mis credenciales en la configuración global de git y estaba pidiendo mis credenciales al realizar solicitudes de extracción o de inserción. Pero eso solo funcionaba en Git Shell.
Si está utilizando GitHub para Windows en una empresa, es muy probable que esté detrás de un gran firewall / proxy corporativo. GitHub para Windows aún no tiene los parámetros de proxy en su GUI para configurar las opciones.
Para configurar GitHub para que Windows use su proxy corporativo, edite el archivo .gitconfig que se encuentra típicamente en C: / Users / .gitconfig o C: / Documents & Settings / .gitconfig
Cierre GitHub para Windows; En .gitconfig, solo agrega
[https] proxy = proxy.yourcompany.com:port
También me encontré con este problema e intenté profundizar un poco en él (desmontó al cliente).
La pieza de código que genera los mensajes de registro que estamos viendo es la siguiente:
private static void LogProxyServerConfiguration()
{
WebProxy defaultProxy = WebProxy.GetDefaultProxy();
string str = defaultProxy.Address != (Uri)null ? defaultProxy.Address.ToString() : "(None)";
StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy information: {0}", str);
try
{
if (defaultProxy.Credentials == null)
{
StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Couldn''t fetch creds for proxy", new object[0]);
}
else
{
NetworkCredential credential = defaultProxy.Credentials.GetCredential(GitHubClient.GitHubDotComUri, "Basic");
StartupLogger.log.Info((IFormatProvider)CultureInfo.InvariantCulture, "Proxy is authenticated: {0}", credential != null && !string.IsNullOrWhiteSpace(credential.UserName));
}
}
catch (Exception ex)
{
StartupLogger.log.InfoException("Couldn''t fetch creds for proxy", ex);
}
}
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 variables de entorno.