2010-03-28 10 views
6

Estoy tratando de utilizar el reenvío de puerto SSH para derrotar cortafuegos corporativo:necesidad de utilizar git detrás de cortafuegos: tratar túneles SSH

ssh [email protected]_SERVER -L9418:GIT_SERVER:9418 

y en otro terminal de corro

git clone git://localhost:repositories/project.git 

pero me da la el siguiente error:

Initialized empty Git repository in /Users/aboxer/tmp/glucosia/.git/

fatal: Unable to look up localhost (port repositories) (nodename nor servname provided, or not known)

¡Gracias!

+0

Esto es más apropiado para serverfault. – Ikke

+1

@Ikke: De hecho, la respuesta (creo) tiene que ver totalmente con la sintaxis de git url, y stackoverflow ha sido bien establecido como el lugar para preguntas sobre cómo usar git. – Cascabel

+0

Me di cuenta después. Pensé que era sobre cómo configurar el firewall. – Ikke

Respuesta

6

Estoy bastante seguro de su problema (o al menos el que causa este error en particular) está aquí:

git clone git://localhost:repositories/project.git 

Si nos fijamos en la list of url notations de empuje hombre git verá el ejemplo relevante:

git://host.xz[:port]/path/to/repo.git/ 

con el colon, que está utilizando "repositorios" como el nombre del puerto, y Git (comprensiblemente) tiene problemas para conectarse a repositorios de puerto en el host local! Lo que estamos buscando es:

git://localhost/path/to/repositories/project.git 

o tal vez

git://localhost/~user/repositories/project.git 

Editar:

probablemente debería haber dicho esto desde el principio, pero en realidad no puedo pensar en una razón por la que necesitarías usar tunneling SSH con git. Su protocolo de transporte predeterminado es ssh; el protocolo git solo está realmente presente para permitir que los repositorios públicos se obtengan sin una cuenta. Si puede SSH en la máquina donde se encuentra el repositorio, sólo puede ir a buscar a través de SSH:

git clone ssh://[[email protected]]host.xz/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~/path/to/repo.git 
git clone ssh://[[email protected]]host.xz/~user/path/to/repo.git 
+0

sí, lo curioso es que cuando no estoy detrás del firewall, el comando git clone git: // GIT_SERVER: repositorios/project.git funciona bien, pero git clone git: // GIT_SERVER/repositorios/proyecto .git no – Jacko

+0

@Jacko: ¿Supongo que quiere decir que eliminar el colon aquí no ayuda? Además, ¿hay alguna razón por la que no pueda simplemente usar 'git clone ssh: // GIT_SERVER/path/to/repositories/project.git'? El protocolo de transporte predeterminado de Git es ssh ... – Cascabel

+0

Gracias, Jefromi. La recuperación a través de ssh como se describe en su edición funciona bien. – Jacko

0

La versión corta de la respuesta de Vlad Zloteanu:

Configurar el túnel:

ssh ServerWithSSHAccessAddress -L 2000:GitServerAddress:22 -N , & 

Clonar el repositorio

git clone ssh://[email protected]:2000/my_repo.git 
0

Éstos son los pasos que trabajaban para mí. Mi sistema está detrás del cortafuegos de la empresa y se unió dominio:

  • Primera NPM necesita ser instalado
  • violinista tiene que estar en el modo de funcionamiento también.El violinista debe estar en ejecución con 'automáticamente Autenticación' opción bajo 'Reglas' habilitado
  • Instalar Git a través de comandos:

NPM instalar git

  • protocolo de actualización de Git a https:

git config --global url. https://github.com/.insteadOf git: //github.com/

Cuestiones relacionadas