Использование удаленного хранилища с нестандартным портом

Я настраиваю свой локальный проект git для удаленного репозитория. Удаленный репозиторий обслуживается на нестандартном порту (4019).

Но это не сработает. Вместо этого я получаю следующее сообщение об ошибке:

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'

Мой локальный git config следующим образом:

[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

(Порт и хост являются заполнителями для фактического порта и хоста.)

Что не так с моей конфигурацией git?

Ответ 1

Если вы помещаете что-то вроде этого в свой .ssh/config:

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

тогда вы должны иметь возможность использовать базовый синтаксис:

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

Ответ 2

Метод доступа git на основе SSH может быть указан в <repo_path>/.git/config с использованием полного URL-адреса или синтаксиса типа SCP, как указано в http://git-scm.com/docs/git-clone:

Стиль URL:

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

Стиль SCP:

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

Обратите внимание, что стиль SCP не позволяет прямое изменение порта, полагаясь вместо этого на определение хоста ssh_config в вашем ~/.ssh/config, например:

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

Затем вы можете протестировать в оболочке с помощью:

ssh my_git_host

и измените свой URI в стиле SCP в <repo_path>/.git/config как:

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

Ответ 3

Попробуйте это

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

Ответ 4

Это позволяет избежать проблемы, а не исправлять ее напрямую, но я бы рекомендовал добавить файл ~/.ssh/config и иметь что-то вроде этого

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

то вы можете иметь

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

и вы можете также ssh git_host и scp git_host ..., и все будет работать.

Ответ 5

SSH не использует синтаксис : при указании порта. Самый простой способ сделать это - отредактировать файл ~/.ssh/config и добавить:

Host git.host.de
  Port 4019

Затем укажите только git.host.de без номера порта.