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

Configuration 具有非标准SSH端口的Gitlab(在具有Iptable转发的VM上),configuration,ssh,virtual-machine,iptables,gitlab,Configuration,Ssh,Virtual Machine,Iptables,Gitlab,Mygitlab位于主机服务器上的虚拟机上。我使用一个非标准SSH端口(即766)到达虚拟机,该端口由一个iptable规则从host:766转发到VM:22 因此,当我创建一个新的repo时,添加远程设备的指令提供了一个格式错误的URL(因为它不使用766端口。例如,web界面提供了以下信息: 畸形的 git远程添加源git@git.domain.com:group/project.git 而不是在组前面包含:766/的URL 完善的 git远程添加源git@git.domain.com:76

My
gitlab
位于主机服务器上的虚拟机上。我使用一个非标准SSH端口(即
766
)到达虚拟机,该端口由一个iptable规则从
host:766
转发到
VM:22

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

畸形的 git远程添加源git@git.domain.com:group/project.git

而不是在组前面包含
:766/
的URL

完善的 git远程添加源git@git.domain.com:766/group/project.git

因此,当我创建回购协议时,我必须手动进行修改,对我的合作者也是如此。
如何修复此问题?

如果在config/gitlab.yml中正确配置ssh_端口,网页将显示正确的repo url

## GitLab Shell settings
gitlab_shell:
  ...
  # If you use non-standard ssh port you need to specify it
  ssh_port: 766
附言。 正确的url是: ssh://git@git.domain.com:766/group/project.git

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

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

N.B.:这是在旧Giltab版本(
v5
-
v6
上测试的,可能不适合现代应用

您可以通过两步流程实现类似的行为:

1.编辑:
config/gitlab.yml
在服务器上,将端口设置为您使用的端口:

ssh_port: 766
2.编辑
~/.ssh/config
在您的计算机上,添加与gitlab对应的以下部分:

Host sub.domain.com
        Port 766
极限 您需要在每个用户的计算机上重复此操作

工具书类

在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
在web界面中。

这就是我正在做的,我在
sudo-u git-H bundle exec rake gitlab:env:info RAILS\u env=production'
输出中得到了正确的URL,但在web界面中没有缓存阻止修改以显示在web界面中。不确定它是什么(sidekiq,gitlab)假设这有点旧,我也有同样的问题…您声称这是由于“缓存”出现的修改?您能否澄清如何修复?谢谢。对于综合安装,可以在:/opt/gitlab/embedded/service/gitlab rails/config/gitlab.yml中找到此文件,以防有人遇到问题,@eadouardlopez的env:info显示正确的URL,但web界面不正确,您应该重新启动apache、 如果您正在使用它。它对我有效。我猜unicorn正在以某种方式缓存数据。@josch答案是对于较旧版本的Gitlab,如版本~5-6,您还需要确保ssh被告知在该端口上侦听,否则连接将被拒绝。默认情况下,它是/etc/ssh/sshd\u configI必须运行
Gitlab ctl restart
In除了
重新配置
之外,在这之后,web界面上的我的ssh链接被更新。当使用官方gitlab docker容器时,还必须更改侦听端口的使用过的sshd config文件是:/assets/sshd_config在编辑端口后使用:/etc/init.d/ssh restartIf您也编辑/etc/sshd_conf重新启动sshdig,不要忘记重新启动sshd,例如,
服务sshd重新启动