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

问题描述 投票:0回答:5

我的

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

因此,当我创建新的存储库时,添加远程的指令提供了格式错误的 URL(因为它不使用

766
端口。例如,Web 界面给了我这个:

畸形

git 远程添加源[电子邮件受保护]:group/project.git

而不是在组之前包含

:766/
的 URL。

结构良好

git 远程添加源 [电子邮件受保护]:766/group/project.git

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

configuration ssh virtual-machine iptables gitlab
5个回答
108
投票

在 Omnibus 打包版本中,您可以在

/etc/gitlab/gitlab.rb
文件中修改该属性:

gitlab_rails['gitlab_shell_ssh_port'] = 766

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

# gitlab-ctl reconfigure

您的 URI 将在 Web 界面中正确显示为

ssh://[email protected]:766/group/project.git


40
投票

如果您在 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://[电子邮件受保护]:766/group/project.git

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

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

5
投票

注意:这是在旧的 Giltab 版本(

v5
-
v6
上测试的,可能不适合现代实例。

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

1.编辑:
config/gitlab.yml

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

ssh_port: 766

2.编辑
~/.ssh/config

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

Host sub.domain.com
        Port 766

限制

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

参考文献


0
投票

解决此问题的简单方法:

ssh://git@my-server:4837/~/test.git
git clone -v ssh://git@my-server:4837/~/test.git

参考网址


0
投票

当存储库是某个组的一部分时,默认 URL 就会变得混乱。您可以使用

测试Git连接
ssh -T -p <local-port> git@localhost

并使用

克隆存储库
git clone ssh://git@localhost:<local-port>/<gitlab-group>/<gitlab-project>.git

例如,如果 GitLab 上的 SSH 正在侦听端口 2222,并且本地端口转发位于端口 62222,例如:

LocalForward    62222 localhost:2222

您可以使用以下方式测试连接:

ssh -T -p 62222 git@localhost

如果您有一个名为

my-group
的组和名为
my-project
的项目,您可以使用

克隆存储库

并使用

克隆存储库
git clone ssh://git@localhost:62222/my-group/my-project.git
© www.soinside.com 2019 - 2024. All rights reserved.