有没有办法强制OpenSSH(或创建某种代理)将一个用户转发到一台机器而另一个用户转移到另一台机器只是通过他(或她)提供的用户名?
我遇到了以下问题:我将在Docker容器中运行GitLab,同时在主机上运行SSH服务器. GitLab监听SSH连接,但它只对“git”用户通过SSH密钥区分客户端感兴趣.
所以我想要创建的设置是以下之一:
>主机端口22上的代理,当用户是“git”或主机SSH(可能会侦听另一个端口,重要的是客户端不知道这个)时,将整个会话转发到Docker Gitlab是不同的.
>主机SSH处理除“git”内部的每个用户,并在用户名为“git”时将会话转发到Docker容器.
需要明确的是:Docker容器运行一个桥接器,它可以通过与主机IP不同的唯一IP地址从主机访问.
在StackOverflow(https://stackoverflow.com/questions/8505445/setup-ssh-server-to-forward-connections)上有一个类似的问题,但没有解决这个问题的答案 – 最有帮助的是建议自定义shell,但我发现无法创建类似的东西.