Ответ 1
Если вы помещаете что-то вроде этого в свой .ssh/config
:
Host githost
HostName git.host.de
Port 4019
User root
тогда вы должны иметь возможность использовать базовый синтаксис:
git push githost:/var/cache/git/project.git master
Я настраиваю свой локальный проект 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?
Если вы помещаете что-то вроде этого в свой .ssh/config
:
Host githost
HostName git.host.de
Port 4019
User root
тогда вы должны иметь возможность использовать базовый синтаксис:
git push githost:/var/cache/git/project.git master
Метод доступа 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/
Попробуйте это
git clone ssh://[email protected]:11111/home/git/repo.git
Это позволяет избежать проблемы, а не исправлять ее напрямую, но я бы рекомендовал добавить файл ~/.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 ...
, и все будет работать.
SSH не использует синтаксис :
при указании порта. Самый простой способ сделать это - отредактировать файл ~/.ssh/config
и добавить:
Host git.host.de Port 4019
Затем укажите только git.host.de
без номера порта.