加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 02:54:44 所属栏目:Linux 来源:网络整理
导读:有没有办法强制OpenSSH(或创建某种代理)将一个用户转发到一台机器而另一个用户转移到另一台机器只是通过他(或她)提供的用户名? 我遇到了以下问题:我将在Docker容器中运行GitLab,同时在主机上运行SSH服务器. GitLab监听SSH连接,但它只对“git”用户通过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目标.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读