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

Fork me on Github
[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

Fork me on Github
[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:

Fork me on Github
[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




Dejar un comentario

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