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

Édo*_*pez 35 ssh configuration iptables virtual-machine gitlab

gitlab在主机服务器上的虚拟机上.我使用非标准SSH端口(即766)通过iptable规则转发host:766到VM vm:22.

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

异常

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

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

简洁(wellformed)

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

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

Peq*_*que 76

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

gitlab_rails['gitlab_shell_ssh_port'] = 766
Run Code Online (Sandbox Code Playgroud)

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

# gitlab-ctl reconfigure
Run Code Online (Sandbox Code Playgroud)

然后,您的URI将ssh://git@git.domain.com:766/group/project.git在Web界面中正确显示.

  • 您还需要确保告知ssh在该端口上侦听,否则连接将被拒绝.默认情况下,它是/ etc/ssh/sshd_config (4认同)
  • 除了`reconfigure`之外,我还必须运行`gitlab-ctl restart`,但之后,我在web界面上的ssh链接被更新了. (2认同)
  • 使用官方gitlab docker容器时,必须更改监听端口的已使用的sshd配置文件是:/ assets/sshd_config使用以下命令在编辑端口后重新启动sshd:/etc/init.d/ssh restart (2认同)

gda*_*jan 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
Run Code Online (Sandbox Code Playgroud)

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

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

bundle exec rake cache:clear assets:clean assets:precompile RAILS_ENV=production
Run Code Online (Sandbox Code Playgroud)


Édo*_*pez 5

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

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

1. 编辑: config/gitlab.yml

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

ssh_port: 766
Run Code Online (Sandbox Code Playgroud)

2. 编辑 ~/.ssh/config

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

Host sub.domain.com
        Port 766
Run Code Online (Sandbox Code Playgroud)

限制

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

参考