0%

Docker部署GitLab远程SSH需要密码

因为Docker 部署时,我们一般都会映射端口,防止与服务器的端口冲突或占用。Gitlab默认的 SSH 是22 端口,如果我们做了端口映射,但是不修改 Gitlab 的SSH 连接端口,会导致权限验证失败变成需要输入密码才能连接。

查看 Gitlab 映射的22端口

1
2
3
4
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd685db5315a gitlab/gitlab-ce "/assets/wrapper" 2 years ago Up 21 hours (healthy) 80/tcp, 0.0.0.0:10000->10000/tcp, 0.0.0.0:2223->22/tcp, 0.0.0.0:8444->443/tcp fx-gitlab

我这里映射的是 2223 端口

修改 Gitlab 的ssh连接端口

打开 Gitlab 的 gitlab.rb 配置文件。 通过搜索查看 gitlab_shell_ssh_port 配置。

如果有则修改,没有则新增即可。

1
2
# 修改SSH 连接端口为映射端口
gitlab_rails['gitlab_shell_ssh_port'] = 2223

重启&测试

重启Gitlab,进入您项目地址,会发现ssh方式的地址都会有端口号。

ssh://git@192.168.0.197:2223/xxx/xxxx.git ,然后本地测试 git clone ssh://git@192.168.0.197:2223/xxx/xxxx.git 这时候就可以看到不需要密码了。