时间片长度限制:年龄:22和八濑:22应该分别接受并导向机器 x 和机器 y。NGINX仅通过反向代理来协调流量。
大家好,很棒的社区,我是来自瑞典的奥斯卡。
当前设置
我有一台接受陣容,让我们打电话给主持人机器A。因此导致ssh [email protected]
SSH-22 号端口的服务机器A。机器 A跑步docker 容器s:机器B和一些其他机器,让我们一次关注一个容器。
预期用途
我希望发生这样的事情:
- 用户鲍勃操作机器B无法访问机器A因为用户不被信任。
- 用户鲍勃连接到基数:22使用 SSH 并获取 shell机器B。
问题
我不知道如何配置它。我想我正在寻找 SSH 的反向代理。我所有其他端点都使用 NGINX 进行反向代理,因为这是我最擅长的,所以我正在研究ngx_stream_proxy_module它基本上可以反向代理任何 TCP 连接。问题是我无法理解 NGINX 流代理应该如何区分a.se
,b.a.se
并且假设任何字符串在n.a.se
哪里。n
如果您对我的设置或问题本身有任何疑问,请添加评论,我会对此问题进行编辑。提前致谢,任何帮助和见解都将不胜感激。
注意:主机运行 Debian 11,我拥有完全访问权限。我更喜欢使用 Docker 作为容器管理器,并使用 NGINX 来路由网络流量。
注意:我添加了一些最基本的资源的链接,这并不是为了嘲笑潜在的帮助者,而是为了帮助将来阅读此帖子并提出与我现在相同的问题的人。
答案1
可以使用主机 A 作为跳转主机来连接到容器。但是,这需要主机 A 上的用户帐户。
可以限制跳转主机账户,以便无法访问服务器本身。
可以在主机 A 中进行限制sshd_config
。
Match user bob
X11Forwarding no
AllowTcpForwarding
ForceCommand ssh bob@<container>
设置完成后,可以:
ssh [email protected]
- 提供主机系统密码
- SSH 守护进程将强制对容器执行 SSH 命令
- 给出容器密码
还可以在主机上创建一个密钥对bob
,用于对容器进行身份验证。这样就不需要第二个密码了。