强制将 SSH 用户直接通过隧道连接到 Docker 容器

强制将 SSH 用户直接通过隧道连接到 Docker 容器

我们想使用其官方 docker 镜像来设置 gitlab 安装。为了支持通过 SSH 连接到 git 存储库,我们有两个选项。

  1. 将容器端口22绑定到主机端口22
  2. 将容器端口 22 绑定到另一个主机端口

如果我们选择解决方案 1,我们将失去通过 SSH 连接到主机的可能性,这是不可接受的。对于解决方案 2,我们可以正确配置 gitlab,以知道向用户显示哪个端口,但连接到 感觉不太方便,ssh://git@githost:1234:user/repo而不是连接到git@githost:user/repo

现在我们认为有可能可以在服务器端配置 openssh,以便始终为特定用户(git)转发/隧道 ssh 连接以连接到 docker 容器。

我们能取得的唯一进展是通过将默认“shell”设置为/etc/passwd运行docker exec容器来获得直接连接到容器的登录会话。但由于 git 不会打开登录 shell,因此这对 git 命令不起作用。

相关内容