Precisa usar o Git atrás do firewall: Experimentando o SSH Tunneling
-
22-09-2019 - |
Pergunta
Estou tentando usar o encaminhamento de portas SSH para derrotar o firewall corporativo:
ssh git@GIT_SERVER -L9418:GIT_SERVER:9418
E em outro terminal eu corro
git clone git://localhost:repositories/project.git
Mas recebo o seguinte erro:
Repositório Git vazio inicializado em /users/aboxer/tmp/glucosia/.git/
Fatal: Incapaz de procurar localhost (repositórios portuários) (Nodename nem servName fornecido, ou não são conhecidos)
Obrigado!
Solução
Tenho certeza de que o seu problema (ou pelo menos aquele que causa esse erro em particular) está aqui:
git clone git://localhost:repositories/project.git
Se você olhar para o Lista de notações de URL Em Man Git Push, você verá o exemplo relevante:
git://host.xz[:port]/path/to/repo.git/
Com o cólon, você está usando "repositórios" como nome da porta, e o Git (compreensivelmente) tem problemas para se conectar aos repositórios de porta no host local! O que você está procurando é:
git://localhost/path/to/repositories/project.git
ou talvez
git://localhost/~user/repositories/project.git
Editar:
Eu provavelmente deveria ter dito isso desde o início, mas na verdade não consigo pensar em um motivo de você precisar usar o SSH Tunneling com o Git. Seu protocolo de transporte padrão é SSH; O protocolo Git está realmente presente apenas para permitir que os repositórios públicos sejam buscados sem uma conta. Se você puder SSH na máquina onde o repositório está localizado, você pode buscar via SSH:
git clone ssh://[user@]host.xz/path/to/repo.git
git clone ssh://[user@]host.xz/~/path/to/repo.git
git clone ssh://[user@]host.xz/~user/path/to/repo.git
Outras dicas
Eu escrevi uma resposta/guia completo aqui: http://vladzloteanu.wordpress.com/2010/12/18/git-through-sh-port-forwarding-sh-tunneling/.
A versão curta da resposta de Vlad Zloteanu:
Configure o túnel:
ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , &
Clone o repo
git clone ssh://user@localhost:2000/my_repo.git
Aqui estão as etapas que funcionaram para mim. Meu sistema está por trás do firewall da empresa e o domínio é unido:
- O primeiro NPM precisa ser instalado
- Fiddler também precisa estar no modo de corrida. Fiddler precisa estar executando com a opção 'Automaticamente autenticar' em 'regras' ativadas
- Instale o comando git via:
NPM Instale Git
- Atualize o protocolo do Git para o HTTPS:
Config Git -URL global.https://github.com/.insteadof git: //github.com/