我目前在 kubernetes 中托管 gitlab,还想将 sftp 服务移到那里。我想使用单个负载均衡器和 (nginx) ingress 来托管两者。
问题是 nginx ingress 只能将端口 22 转发到一个目的地。我解决这个问题的计划是在 k8 中设置一个代理服务,由 nginx 转发,将“git”用户转发到 gitlab,将所有其他用户转发到 sftp 服务。
这可能吗?我应该如何设置(特别是 sshd_config)?
此外,是否可以转发凭据——例如,如果某个用户使用他们已配置为在 gitlab 中使用的 ssh 密钥,它将识别他们为该用户。Sftp 用户使用密码。我想确保客户端“ssh”命令导致最终用户可用的凭据与目标 ssh 主机一起使用。特别是,我想确保 sftp 客户端(它们是我们的业务客户端,在某些情况下使用自动脚本)无需更改任何内容即可连接。(注意——我将重新分配 IP 并设置主机密钥,以便负载平衡器和代理从外部“看起来”尽可能相同。)