GIT con HTTP Proxy

¡Hola a todos!

¿Como estan? Si leen este artículo, seguramente esten bastante enojados con un proxy HTTP, pero mas alla de eso espero que esten bien.

Los proxys HTTP son una brillante idea que le permite a los administradores de la red hacer un monton de cosas copadas, y ademas en teoría permite filtrar el tráfico que circula por una red. Toda esta teoría tienta tanto a las companías que estas instalan el proxy, sin darse cuenta que en realidad no sirven para una mierda y encima te tenes que clavar configurando todos los programas de mierda para que el trafico pase por ese agujero. ajem.

En windows configurar estas cuestiones es bastante sencillo, aunque no automático, y la mayoría de las aplicaciones reconocen la configuración del sistema operativo. Pensé que funcionaba perfecto, pero no, muchas aplicaciones ignoran el hecho a full. En linux es una locura. Podés configurar el proxy en como 3 lugares, y en ninguno las aplicaciones te dan pelota. Tenés que configurar — applicacion por aplicacion — el APT, el svn, el git, el hg, el browser, todo.

Pero como todo en la vida es una experiencia que nos enseña que estar atrás de un proxy es fácil en las películas, pero en la vida real es un quilombo de la puta madre y si quisieramos anonimizar nuestro tráfico sería complicadísimo garantizar que ningún tipo de tráfico se esta escapando y viajando sin tocar el proxy ( efectivamente rompiendo nuestro anonimato)

Y hoy nos vamos a concentrar en el GIT, con un gist sacado de “I shouldn’t have to do this shit…“.

Basicamente los pasos a seguir son:

1. Instalar corkscrew:

Corkscrew es una utilidad para pasar SSH sobre proxies HTTP. Vamos a usar GIT por SSH.

apt-get install corkscrew

2. Configurar el usuario y contraseña

echo usuario_de_proxy:contrasenia > ~/.corkscrew_auth

3. Configurar en ~/.ssh/config

Host gitproxy
    User git
    Hostname ssh.github.com
    Port 443
    ProxyCommand /usr/local/bin/corkscrew dnzwgpx2 80 %h %p ~/.corkscrew_auth
    IdentityFile ~/.ssh/id_rsa

4. Agregar a ~/.git/config tu repositorio

[remote "originpx"]
    url = ssh://gitproxy/your_username/your_repo.git
    fetch = +refs/heads/*:refs/remotes/origin/*

Ahora deberias de poder hacer esto:

git clone git@gitproxy:your_username/your_repo.git

Los comentarios están cerrados.