Estou tentando fazer o cliente GitHub para Windows funcionar. Estou em um computador corporativo Win 7 x64 protegido por proxy e firewall corporativo. Seguindo várias outras postagens e experimentando várias combinações de variáveis de ambiente e variáveis de configuração, descobri que a única maneira de fazer a clonagem e as atualizações por push funcionarem é usando a variável de ambiente HTTPS_PROXY, incluindo meu ID de usuário e senha de domínio corporativo completo.
Isso é inaceitável do ponto de vista da segurança. Existe alguma outra maneira de fazer isso funcionar?
Notas Adicionais:
O seguinte funcionou:
- Adicione uma variável de ambiente chamada
HTTPS_PROXY
com o valorhttp://[domain]\[userid]:[password]@someproxy.mycorp.com:8080
O seguinte não funcionou:
- Omitindo ID de usuário e senha da
HTTPS_PROXY
variável - Usando uma variável de ambiente chamada
HTTP_PROXY
(nãoS
) - Adicionando a
http.proxy
variável ao arquivo de configuração global (.gitconfig
) - Adicionando a
https.proxy
variável ao arquivo de configuração global
Em todos os casos, o cliente GitHub ainda não reconhece o proxy: O conteúdo do arquivo TheLog.txt
sempre mostra o seguinte na inicialização:
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy
E é seguido pela saída de várias tentativas de autenticação de proxy com falha, todas indicando "Credenciais ausentes."
fonte
Respostas:
Adicione essas entradas ao seu arquivo '.gitconfig' no diretório do usuário (vá para% USERPROFILE%):
E se você não quiser armazenar sua senha em texto simples, eu usaria um encaminhador de proxy local como o CNTLM, que permite direcionar todo o tráfego através dele e pode armazenar as senhas em hash.
Ao contrário da pergunta original, se você não se importa se sua senha está em texto simples, adicione o seguinte:
fonte
127.0.0.1
vez delocalhost
, conforme sugerido. No Windows, parece que localhost aponta primeiro para o endereço IPv6, que o CNTLM não escuta. Como tal, o git irá esperar até o tempo limite (vários minutos) antes de mudar para o endereço IPv4.Tentei tudo de cima - e não tive sucesso, a única coisa que me ajudou foi CNTLM - http://cntlm.sourceforge.net/ .
Instale e execute cntlm -H, em seguida, autentique no proxy corp, edite o arquivo cntlm.ini com a saída de cntlm e reinicie o serviço do Windows. Atualize .gitconfig com:
Agora o cntlm fará toda a autenticação e você poderá usar o GitHub (e Dropbox, aliás) por trás do proxy corpor. Pelo menos até a próxima mudança de senha :) (então faça cntlm -H coisas novamente)
fonte
Consegui fazer o GitHub Shell funcionar com nosso proxy corporativo. Estou iniciando o GitHub Shell e executo o seguinte comando:
Eu realmente gostaria de fazer a GUI funcionar também. Mas não quero definir a variável de ambiente global do Windows que contém minhas informações de credenciais corporativas.
Estranhamente, o GitHub GUI Client é capaz de se conectar ao GitHub para autenticação do usuário, mas o único problema é clonar, puxar e enviar projetos de e para o GitHub. Parece que o problema é com a implementação do git. Consegui configurar o git para ser executado por meio de nosso proxy sem colocar minhas credenciais nas configurações globais do git e ele estava pedindo minhas credenciais durante a execução de solicitações pull ou push. Mas isso estava funcionando apenas no Git Shell.
fonte
Se você estiver usando o GitHub para Windows em uma empresa, há grandes chances de estar por trás de um grande Firewall / Proxy Corporativo ruim. O GitHub para Windows ainda não possui os parâmetros de proxy em sua GUI para definir opções.
Para configurar o GitHub para Windows para usar seu proxy corporativo, edite o arquivo .gitconfig normalmente encontrado em C: \ Users \ .gitconfig ou C: \ Documents & Settings \ .gitconfig
Feche o GitHub para Windows; Em .gitconfig, basta adicionar
[https] proxy = proxy.yourcompany.com:port
fonte
Também encontrei esse problema e tentei aprofundá-lo um pouco (desmontei o cliente).
O trecho de código que gera as mensagens de log que estamos vendo é o seguinte:
Portanto, este bloco registra apenas as informações de proxy configuradas no IE . A mensagem de log parece não ter nenhuma relação com o que configuramos nos arquivos de configuração ou variáveis ambientais.
fonte
Eu não sei sobre o seu firewall, mas meu campus usa proxy
você usa algum git gui? EDITAR : acabei de notar que você está usando o cliente github para Windows
Estou usando o tortoisegit e é muito fácil configurar o proxy. Basta clicar com o botão direito em qualquer lugar, tortoisegit> rede, habilitar o servidor proxy e definir o endereço do servidor, nome de usuário e senha. feito
tanto quanto me lembro, o tortoisegit também funciona fora da caixa com o github.
fonte
Aqui está a maneira de definir o proxy no github
Aqui na minha faculdade não temos nome de usuário e senha, portanto, se o IP da faculdade for 172.16.10.10 e a porta for 8080
PS -> eu recomendo usar esse método para set proxy como as coisas vão cair no lugar como você vai aprender mais
Fonte
fonte
Achei este blog útil. Ele descreve o proxy ntlmaps . Provavelmente é menos seguro, mas funcionou bem. Não consegui fazer o cntlm funcionar.
fonte
Para nós, a solução envolveu duas coisas diferentes. Primeiro, conforme descrito na resposta de Sogger, você precisa adicionar as entradas ao seu
.gitconfig
arquivo, localizado em%USERPROFILE%
.Em segundo lugar, (e essa era a peça que faltava para nós), você precisa configurar uma exceção no servidor proxy para permitir o tráfego de proxy não autenticado para
*.github.com
No iPrism, é assim:
O problema não é tanto o proxy, mas a autenticação . Ignorar o requisito de autenticação permite que a comunicação necessária clone e trabalhe com projetos usando o cliente de desktop GitHub.
Observe também que essa abordagem não exigia o armazenamento de credenciais de proxy no
.gitconfig
arquivo.fonte