90 votos

GitHub cliente de Windows detrás de proxy

Estoy tratando de conseguir el GitHub de cliente para Windows de trabajo. Estoy en una empresa Win 7 x64 equipo detrás de un proxy corporativo y el firewall. Después de varios otros posts y experimentar con varias combinaciones de variables de entorno y las variables de configuración que he encontrado la única manera de conseguir la clonación y el empuje de las actualizaciones de trabajar es mediante el uso de la HTTPS_PROXY variable de entorno, incluyendo toda mi dominio corporativo ID de usuario y contraseña.

Esto es inaceptable desde el punto de vista de seguridad. ¿Hay alguna otra manera de conseguir que esto funcione?

Notas adicionales:

El siguiente trabajado:

  • Agregar una variable de entorno llamada HTTPS_PROXY con el valor http://[domain]\[userid]:[password]@someproxy.mycorp.com:8080

La siguiente ¿ no obra:

  • La omisión de id de usuario y la contraseña de HTTPS_PROXY variable
  • El uso de una variable de entorno llamada HTTP_PROXY (no S)
  • La adición de la http.proxy variable global del archivo de configuración (.gitconfig)
  • La adición de la https.proxy varaible para el archivo de configuración global

En todos los casos, el GitHub cliente todavía no reconoce el proxy: El contenido de el archivo TheLog.txt siempre muestra el siguiente en el arranque:

[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 seguida por la salida de varios fallidos intentos de autenticación de proxy, todos los cuales indican "Credenciales faltan."

129voto

Sogger Puntos 2761

Añadir estos entried a tu '.gitconfig' archivo en su directorio de usuario (ir a la carpeta %USERPROFILE%):

[http]
    proxy = http://<proxy address>:<proxy port>

[https]
    proxy = https://<proxy address>:<proxy port>

Y si no desea guardar su contraseña en texto plano, me gustaría utilizar un proxy local transportista 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 te importa si tu contraseña en texto plano:

[http]
    proxy = http://<username>:<password>@<proxy address>:<proxy port>

[https]
    proxy = https://<username>:<password>@<proxy address>:<proxy port>

14voto

Anton Puntos 607

Intentado todo lo de arriba y no tener éxito, lo único que me ayudó es CNTLM - http://cntlm.sourceforge.net/.

Instale y ejecute cntlm -H, de autenticar a corp proxy, editar cntlm.archivo ini con la salida de cntlm, reinicie el servicio de windows. La actualización .gitconfig con:

[https] proxy = localhost:3128
[http] proxy = localhost:3128

Ahora cntlm va a hacer toda la autenticación, y usted será capaz de utilizar GitHub(y Dropbox, por cierto), detrás de la corp proxy. Al menos hasta el próximo cambio de contraseña :) (que cntlm -H las cosas de nuevo)

8voto

edufinn Puntos 195

Yo era capaz de hacer GitHub Shell para trabajar con nuestro proxy corporativo. Estoy empezando GitHub Shell y ejecutar el siguiente comando:

export http_proxy=http://<username>:<password>@<corporate proxy>:3128

Realmente me gustaría hacer GUI para trabajar demasiado. Pero no quiero configurar Windows global de la variable de entorno que contiene mi corporativa de la información de credenciales.

Extrañamente GitHub Cliente GUI es capaz de conectarse a GitHub para la autenticación de usuario, pero el único problema es con la clonación, tirando y empujando proyectos en GitHub. Parece que el problema es con git aplicación. Yo era capaz de configurar git para ejecutar a través de nuestro proxy sin poner mis credenciales en el git de configuración global y se estaba preguntando por mis credenciales, mientras que la realización de inserción o extracción de las solicitudes. Pero eso fue sólo para trabajar en Git Shell.

7voto

manivannan Puntos 51

Si usted está usando GitHub para Windows en una empresa, son altas las posibilidades de que estás detrás de un gran mal Corporativa de Firewall/Proxy. GitHub para Windows todavía no tiene los parámetros del proxy en su interfaz gráfica de usuario para la configuración de Opciones.

Para configurar GitHub para Windows para utilizar su proxy corporativo, editar el .gitconfig archivo normalmente se encuentra en C:\Users\.gitconfig o C:\Documents & Settings\.gitconfig

Cerca de GitHub para Windows; En .gitconfig, sólo tiene que añadir

[https] proxy = proxy.suorganización.com:puerto

4voto

vintagemud Puntos 26

También me he topado con este problema, y trató de cavar un poco así (desmontado el cliente).

La pieza de código que genera el registro de los mensajes que estamos viendo es como sigue:

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);
    }
}

Por lo que este bloque sólo se registra la información de proxy que la configuración de IE. El mensaje de registro, parece no tener relación con lo que hemos de configuración en los archivos de configuración o variables ambientales.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X