Utiliser un référentiel distant avec un port non standard

Je suis en train de configurer mon projet local git pour un référentiel distant. Le référentiel distant est diffusé sur un port non standard (4019).

Mais ça ne marche pas. Au lieu de cela, j’obtiens le message d’erreur suivant:

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://root@git.host.de:4019/var/cache/git/project.git' 

Ma config git locale est la suivante :

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

(Le port et l’hôte sont des espaces réservés pour le port et l’hôte réels.)

Quel est le problème avec ma configuration git?

Si vous mettez quelque chose comme ça dans votre .ssh/config :

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

alors vous devriez pouvoir utiliser la syntaxe de base:

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

La méthode d’access git basée sur SSH peut être spécifiée dans /.git/config utilisant une URL complète ou une syntaxe de type SCP, comme spécifié dans http://git-scm.com/docs/git-clone :

Style d’URL:

 url = ssh://[user@]host.xz[:port]/path/to/repo.git/ 

Style SCP:

 url = [user@]host.xz:path/to/repo.git/ 

Notez que le style SCP n’autorise pas un changement de port direct, en s’appuyant plutôt sur une définition d’hôte ssh_config dans votre ~/.ssh/config par exemple:

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

Ensuite, vous pouvez tester dans un shell avec:

 ssh my_git_host 

et modifiez votre URI de style SCP dans /.git/config comme:

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

Essaye ça

 git clone ssh://user@32.242.111.21:11111/home/git/repo.git 

Cela évite votre problème plutôt que de le corriger directement, mais je vous recommande d’append un fichier ~/.ssh/config et d’avoir quelque chose comme ça

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

alors vous pouvez avoir

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

et vous pouvez aussi ssh git_host et scp git_host ... et tout fonctionnera.

SSH n’utilise pas la syntaxe : lors de la spécification d’un port. La méthode la plus simple consiste à modifier votre fichier ~/.ssh/config et à append:

 Hôte git.host.de
   Port 4019

Ensuite, spécifiez simplement git.host.de sans numéro de port.