带有非标准SSH端口的Gitlab(在具有Iptable转发的VM上)

时间:2013-08-29 17:17:34

标签: configuration ssh virtual-machine iptables gitlab

我的gitlab位于主机服务器上的虚拟机上。我使用非标准SSH端口(即766)访问虚拟机,然后iptable规则从host:766转发到vm:22

因此,当我创建一个新的repo时,添加远程的指令提供了一个格式错误的URL(因为它不使用766端口。例如,Web界面给我这个:

格式错误的

  

git remote add origin git@git.domain.com:group/project.git

而不是在群组之前包含:766/的网址。

简洁(wellformed)

  

git remote add origin git@git.domain.com:766 / group / project.git

所以,当我创建一个回购时,我必须手动进行修改,对于我的协作者来说也是如此。 我该如何解决这个问题?

3 个答案:

答案 0 :(得分:72)

在Omnibus打包的版本中,您可以在/etc/gitlab/gitlab.rb文件中修改该属性:

gitlab_rails['gitlab_shell_ssh_port'] = 766

然后,您需要重新配置GitLab:

# gitlab-ctl reconfigure

您的URI将在网络界面中正确显示为ssh://git@git.domain.com:766/group/project.git

答案 1 :(得分:33)

如果在config / gitlab.yml中正确配置ssh_port,则网页将显示正确的repo url。

## GitLab Shell settings
gitlab_shell:
  ...
  # If you use non-standard ssh port you need to specify it
  ssh_port: 766

PS。 正确的网址是: ssh://git@git.domain.com:766 / group / project.git

编辑:更改后需要清除缓存等:

bundle exec rake cache:clear assets:clean assets:precompile RAILS_ENV=production

答案 2 :(得分:4)

NB:这是在旧Giltab版本(v5 - v6上测试的,可能不适合现代实例。

您可以在两个步骤中实现类似的行为:

1。编辑:config/gitlab.yml

在服务器上,将端口设置为您使用的端口:

ssh_port: 766

2。修改~/.ssh/config

在您的计算机上,添加与您的gitlab相对应的以下部分:

Host sub.domain.com
        Port 766

限制

您需要在每个用户的计算机上重复此操作...

参考