2011-09-07 10 views
11

Para clonar un repositorio gestionado por una gitolite suele utilizar siguiente sintaxisgitolite con puerto no predeterminado

git clone [email protected]:repository 

Esto le dice al cliente SSH para conectarse al puerto 22 de servidor usando gitolite como nombre de usuario. Cuando trato con el número de puerto:

git clone [email protected]:22:repository 

Git se queja de que el repositorio 22: Repositorio no está disponible. ¿Qué sintaxis debería usarse si el servidor SSH usa un puerto diferente?

+0

posible duplicado de [git add remoto con otro puerto ssh] (http://stackoverflow.com/questions/3596260/git-remote-add-with-other-ssh-port) –

Respuesta

17

La sintaxis URL Git “estilo SCP” ([email protected]:path) no apoya la inclusión de un puerto. Para incluir un puerto, debe usar un ssh:// "Git URL". Por ejemplo:

ssh://[email protected]:2222/repository 

Nota: En comparación con [email protected]:repository, esto presenta una ruta de repositorio ligeramente diferente para el extremo remoto (el absoluto /repository en lugar de la ruta relativa repository); Gitolite acepta ambos tipos de rutas, otros sistemas pueden variar.


Una alternativa es utilizar una entrada de Host en su ~/.ssh/config (véase el ssh_config(5) manpage). Con una entrada de este tipo, se puede crear un “SSH apodo de acogida” que incorpora el nombre del servidor/dirección, el nombre de usuario remoto y el número de puerto no predeterminado (así como cualquier otra opción SSH te pueden gustar):

Host gitolite 
    User  gitolite 
    HostName server 
    Port  2222 

continuación, puede utilizar las URL Git muy simples como gitolite:repository.


Si usted tiene que documentar (o configurar y) esto para varias personas, me gustaría ir con ssh:// URL, ya que no hay ninguna configuración adicional implicado.

Si esto es solo para usted (especialmente si puede terminar accediendo a múltiples repositorios desde el mismo servidor), podría ser bueno tener el apodo de host SSH para guardar algunos tipeos.

2

se explica en gran detalle aquí: https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd#_appendix_4_host_aliases

El uso de un párrafo "huésped" en ~/.ssh/config le permite encapsular muy bien todo esto dentro de ssh y darle un corto, fácil de recordar, nombre. Ejemplo:

host gitolite 
    user git 
    hostname a.long.server.name.or.annoying.IP.address 
    port 22 
    identityfile ~/.ssh/id_rsa 

Ahora puede simplemente usar una sola palabra gitolite (que es el alias de host hemos definido aquí) y ssh inferirá todos esos detalles definidos debajo de ella - sólo decir gitolite ssh y gitolite git clone: ​​reponame y las cosas funcionarán

Cuestiones relacionadas