微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 使SSH服务器转发每个用户的连接

有没有办法强制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,但我发现无法创建类似的东西.

解决方法

SSH TCP端口隧道由ssh客户端配置.在服务器上,您只能使用authorized_keys中的permitopen = host:port限制隧道配置.

重定向流量的另一种方法是使用Netfilter / iptables和-m owner –uid-owner $UID和DNAT目标.

原文地址:https://www.jb51.cc/linux/396977.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐