Pregunta sobre proxy, git – ¿Cómo usar el túnel SSH para reenviar el protocolo git? [cerrado]

2

Sé que preguntas similares se han hecho muchas veces. Pero todo lo que puedo encontrar son respuestas sobre cómo configurar el proxy para los protocolos http o ssh. Aquí está la situación. Por alguna razón, el repositorio de git en gitorious que necesito para clonar no permite http o ssh. Cuando uso "git clonehttp://gitorious.org/.... "I got" ... / refs not found: ¿ejecutó git update-server-info en el servidor? "Error. Si uso" git clone ssh: //[email protected]/ .. . ", Obtuve el error" fatal: el extremo remoto colgó inesperadamente "(probablemente debería culpar al" repo "de Android por este, porque puedo hacer el git clone directamente, pero no a través de" repo sync "). todas las pruebas se realizan sin firewall.)

Así que mi pregunta es cómo configurar el túnel SSH para usar el protocolo git detrás de un firewall. Específicamente, necesito hacer "git clone git: //gitorious.org / ..." (no ssh: //, no http: //) detrás del firewall. ¡Gracias!

Tu respuesta

1   la respuesta
3

losgit:// protocolo opera en el puerto 9418 (documentado en elgit-daemon página de manual, o ejecutargit daemon --help). Para reenviar esto a través de un túnel SSH, harías algo como esto:

ssh -L 9418:gitorious.org:9418 your.remote.host

Una vez conectado, clonarías un repositorio remoto como este:

git clone git://localhost/path/to/repository.git

Para que esto funcione, obviamente necesita que una máquina fuera de su firewall sea el objetivo del comando ssh.

El repositorio de jquery es git: //github.com/jquery/jquery.git. Entonces, utilizando la configuración anterior, usaría git: //localhost/jquery/jquery.git, asumiendo que ha dispuesto el puerto 9418 localmente para reenviar a github. larsks
puede dar un ejemplo degit://localhost/path/to/repository.git Tal vez con un repo común como jquery? lfender6445
Gracias por la respuesta. Eso funciono. ddwalker
Además, puede poner "127.0.0.1 gitorious.org" en / etc / hosts. Luego puedes git clonar "git: //gitorious.org/" en lugar de "git: // localhost /", con el túnel ssh. Por supuesto, este método tiene un impacto en todo el sistema y debe usarse con precaución. ddwalker

Preguntas relacionadas