使用 VNC 通过堡垒主机到图形操作系统 (Red Hat) 的 SSH 隧道

使用 VNC 通过堡垒主机到图形操作系统 (Red Hat) 的 SSH 隧道

场景如下:我有 4 台主机。

  • 客户端/本地主机
  • AWS 堡垒主机(仅限端口 22)
  • 具有图形桌面的 EC2 实例(私有子网)
  • EC2 实例(无图形),带有运行 WebLogic Server 容器的 Docker

问题:我需要能够通过堡垒主机通过互联网浏览器访问该 WebLogic 服务器。现在我只能使用堡垒主机的端口 22,但所有传出连接均已启用。

我的想法是使用 TightVNC 查看器和 SSH 隧道通过堡垒主机到达 GUI 实例。

现在我的问题是,在我的例子中,我不知道如何让我的堡垒主机将用户的传入端口 22 转发到目标端口 5905。我没有堡垒主机上的 root 访问权限。

到目前为止我发现的所有解决方案都涉及通过命令行进行 SSH,而不是使用 VNC。我需要堡垒自动将端口 22 流量转发到 VNC 端口,仅在可能的情况下为我的用户转发,但不是 100% 需要。

public                 public                 private                private
[user/client] --22-->[bastion]--VNC:5905-->[VNC Server]--80/443-->[Docker/WLS]
GUI                     CLI                     GUI                    CLI 

答案1

这应该是很正常的ssh -L 5905:vnchost:5905 user@bastionhost,其次是vncviewer localhost:5905公共客户端系统,除非堡垒服务器明确禁用 SSH 隧道或者它与 VNC 服务器主机之间存在防火墙。

-L 5905:vnchost:5905(或者写成)参数-L localhost:5905:vnchost:5905意味着 ssh 客户端节点将打开一个端口,并且当客户端上的 VNC 查看器尝试启动连接时,localhost:5905堡垒主机上的 SSH 服务器守护程序应尝试将隧道发送到。vnchost:5905

如果无法建立连接,SSH 会话中应出现错误消息(VNC 客户端也可能会抛出错误)。

答案2

我有相同的设置并通过下面实现它,其中 bastion 是堡垒的主机名,10.1.1.1 是 ec2 实例

ssh -v -l user -L 5901:localhost:5901 bastion ssh -o StrictHostKeyChecking=no -L 5901:localhost:5901 -N [email protected]

然后通过 vnc 连接到 localhost:5901

相关内容