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目标.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...