Git detrás de un proxy o muro cortafuegos

git

Si tu administrador de red ha bloqueado cualquier conexión dirigida al puerto 22 (Puerto ssh estándard) usando un proxy o muro cortafuegos y no puedes acceder (pull, clone, push, …) a un repositorio remoto usando ssh puedes solucionarlo accediendo a través del protocolo https.

Nota: El proveedor del repo debe tener implementado el acceso vía https.

Agregue las siguientes líneas a su fichero ~/.gitconfig

[http]
    proxy = http://user:pwd@proxy-url:proxy-port
    # Útil si el proxy solo acepta user agent conocidos
    useragent = Mozilla/4.0
    # Descomente la línea si su proveedor del Repo provee
    # un certificado no root por ejemplo un certificado autogenerado
    # pero sea cuidadoso la fuente deber ser confiable
    # sslVerify = false
# Esta opción salva sus credenciales del Repo en ~/.git-credentials 
# y evita tener que teclearla una y otra vez
[credential]
    helper = store

Si algunos de sus repositorios no necesitan proxy por ejemplo los repositorios que estan alojado en la WAN de su organización bastaría con establecer para el origen la variable proxy a vacía.

1) Creamos el DIR que va a contener el repo

$ mkdir sysadmin

2) Cambiamos al DIR sysadmin

$ cd sysadmin

3) Inicializamos el repo

$ git init .

4) Agregamos el origin

$ git remote add origin https://github.com/yoander/sysadmin.git

5) Editamos el fichero de configuración .git/config

$ vim .git/config

6) Nos debe quedar similar a

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/yoander/sysadmin.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    proxy =

También es posible tener una configuración específica para cada repo la configuración anterior nos quedaría:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/yoander/sysadmin.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    proxy = http://user:pwd@proxy-url:proxy-port

En los 2 ejemplos anteriores nótese el valor de la variable proxy.

Lectura recomendada

* man git-config

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.