使用具有非标准端口的远程存储库

我正在为远程存储库设置我的本地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://root@git.host.de:4019/var/cache/git/project.git' 

我的本地gitconfiguration如下 :

 [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 

(端口和主机是实际端口和主机的占位符。)

我的gitconfiguration有什么问题?

如果你把这样的东西放在你的.ssh/config

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

那么你应该可以使用基本的语法:

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

基于SSH的git访问方法可以在<repo_path>/.git/config使用完整的URL或类似SCP的语法指定,如http://git-scm.com/docs/git-clone

url样式:

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

SCP风格:

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

请注意,SCP风格不允许直接更改端口,而是依赖于~/.ssh/configssh_config主机定义,例如:

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

然后你可以在shell中testing:

 ssh my_git_host 

并将<repo_path>/.git/config SCP样式URI更改为:

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

尝试这个

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

这避免了你的问题,而不是直接修复它,但我build议添加一个~/.ssh/config文件,并有这样的事情

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

那么你可以拥有

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

你也可以ssh git_hostscp git_host ...一切都会解决。

指定端口时,SSH不使用:语法。 最简单的方法是编辑~/.ssh/config文件并添加:

主机git.host.de
  港口4019

然后指定没有端口号的git.host.de