Configuration 具有非标准SSH端口的Gitlab(在具有Iptable转发的VM上)
MyConfiguration 具有非标准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
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
极限
您需要在每个用户的计算机上重复此操作
工具书类
/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重新启动
。