2009-10-13 16 views
100

Estoy configurando mi proyecto git local para un repositorio remoto. El repositorio remoto se sirve en un puerto no estándar (4019).Uso de un repositorio remoto con puerto no estándar

Pero no funciona. En su lugar aparece el siguiente mensaje de error:

ssh: connect to host git.host.de:4019 port 22: Connection refused 
fatal: The remote end hung up unexpectedly 
error: failed to push to 'ssh://[email protected]:4019/var/cache/git/project.git' 

Mi git config local es as follows: (. El puerto y el host son marcadores de posición para el puerto real y el anfitrión)

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = false 
    logallrefupdates = true 
[remote "origin"] 
    url = ssh://[email protected]:4019/var/cache/git/project.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 

¿Cuál es mal con mi configuración de git?

+8

Parece que si No coloque 'ssh: //' explícitamente delante de la url, cree que es un formato diferente. tan 'ssh: //example.com: 444/etc /' es/etc/en example.com a través del puerto 44. Mientras que 'example.com: 444/etc /' es/444/etc/en example.com a través del puerto 22. – Kzqai

+4

@Kzqai observación es importante. es decir, si lo haces 'git remote set-url origin [email protected]: 443/yourname/yourrepo /' no funcionará. pero, si lo haces 'git origen set-url remoto ssh: //[email protected]: 443/yourname/yourrepo /' esto funcionará – oak

+0

Para el Google-fu - tuve este problema con el fachador cuando tuve se configuró en un puerto no predeterminado de 2222. ¡Ahora, ordenado! – user3791372

Respuesta

90

Si pones algo como esto en su .ssh/config:

Host githost 
HostName git.host.de 
Port 4019 
User root 

, entonces debería ser capaz de utilizar la sintaxis básica:

git push githost:/var/cache/git/project.git master 
+3

Una configuración SSH podría ser una solución, pero esto me interesó, porque man git-push dice que el formato ssh url aceptado es ssh: // [usuario @] host.xz [: puerto]/ruta/a/repositorio. git/ – gnud

+1

No estoy seguro, puede tratarse de un problema de configuración de configuración git/ssh porque traté de presionar a un ssh: // fake @ localhost: 333/dirección falsa y obtuve (como se esperaba) "puerto 333: conexión rechazada ". –

+28

Atención a alguien que aún necesita esto. La sintaxis es 'git clone ssh: // username @ hostname: 333/~/repo' para una ruta relativa a su directorio de inicio o' git clone ssh: // username @ hostname: 333/path/to/repo' para un ruta absoluta –

6

SSH No usa la sintaxis : al especificar una Puerto. La forma más sencilla de hacer esto es editar el archivo de ~/.ssh/config y añadir:

 
Host git.host.de 
    Port 4019 

A continuación, especifique simplemente git.host.de sin un número de puerto.

9

Esto evita el problema en lugar de fijar directamente, pero me gustaría recomendar la adición de un archivo ~/.ssh/config y tener algo como esto

Host git_host 
HostName git.host.de 
User root 
Port 4019 

, entonces puede tener

url = git_host:/var/cache/git/project.git 

y también se puede ssh git_host y scp git_host ... y todo saldrá bien.

103

SSH método de acceso Git basado se puede especificar en <repo_path>/.git/config utilizando una URL completa o una sintaxis SCP similar, como se especifica en http://git-scm.com/docs/git-clone:

estilo URL:

url = ssh://[[email protected]]host.xz[:port]/path/to/repo.git/ 

estilo SCP:

url = [[email protected]]host.xz:path/to/repo.git/ 

Observe que el estilo SCP no permite un cambio de puerto directo, confiando en cambio en un host ssh_config definido iones en su ~/.ssh/config tales como:

Host my_git_host 
HostName git.some.host.org 
Port 24589 
User not_a_root_user 

A continuación, se puede probar en una cáscara con:

ssh my_git_host 

y alterar su SCP-estilo URI en <repo_path>/.git/config como:

url = my_git_host:path/to/repo.git/ 
+0

Soooooo ... todo lo que realmente se necesita es agregar un ssh: // frente a la url, probablemente. – Kzqai

+0

No me di cuenta de que podría especificar ssh urls o que scp (valor predeterminado) no permitía números de puerto. Bueno saber. – Powerlord

+0

scp en realidad permite el número de puerto (pero la clave de opción debe ser la P mayúscula): 'scp -P 2020 file/to/copy user @ host: path/to/copy/file/to' – Drew

19

Prueba esto

git clone ssh://[email protected]:11111/home/git/repo.git 
+1

Hola Ricky, me ha funcionado con la sintaxis git clone ssh: // usuario @ máquina: puerto/ruta-a-repo, donde se escribe la máquina debe ser usuario, gracias – rtrujillor

Cuestiones relacionadas