用于 https SOAP Web 服务的 ssh 隧道

用于 https SOAP Web 服务的 ssh 隧道

我需要从本地计算机使用 Web 服务,但 Web 服务仅允许预定义的 IP,因此我需要通过中间主机使用该服务,该主机定义了 IP 以到达 Web 服务主机。因此我需要执行类似 ssh 隧道跳跃的操作:

Local computer(mac) ---> middle host(ubuntu) ---> https soap web service
                    <---                     <---

我的本地计算机是mac,中间主机是ubuntu linux,服务是https服务。

首先我想问这是一种可能的情况吗?

然后我尝试过并取得了以下成果:

我使用 ssh 命令启动了隧道:

ssh -L 8443:service_url:443 -Nf root@middle_host_ip

我正在使用 SoapUi 应用程序来测试连接,但出现javax.net.ssl.sslexception connection reset错误。

在 ssh 连接端我收到channel 2: open failed: connect failed: Name or service not known错误。

我在 SoapUi 应用程序中尝试的 URLhttps://localhost:8443https://127.0.0.1:8443

我还更新了 /etc/host 文件,以检查问题是否与此有关;例如:

127.0.0.1       service_url
255.255.255.255 broadcasthost
::1             localhost

但我仍然遇到同样的错误。

有没有更简单的方法来测试连接?我是否犯了明显的错误?

谢谢。

编辑:

为了测试,我尝试使用 ssh 命令连接到非 https 服务器

ssh -L 8443:[regular_web_site_url]:80 [user]@[server_ip]

并在网络浏览器中输入 URLlocalhost:8443并成功检索该网站。

但是当我尝试对我想要使用的 https web 服务执行相同操作时,我在创建 ssh 连接的 shell 上收到错误: channel 3: open failed: connect failed: Name or service not known

当我尝试检索 https 网站时,出于测试目的,即使我将文件更改/etc/hosts为以下内容,也会出现无效证书错误: 127.0.0.1 [https_web_site_url]

我尝试实现这一点的原因是我需要测试一个 https Web 服务,该服务只允许使用预定义的 IP,因此我需要连接到具有预定义 IP 的中间主机以供使用该服务。

任何帮助都将不胜感激。再次感谢

答案1

ssh -L 8443:service_host:443 -Nf root@middle_host_ip

service_host 可以是 ip 地址或 fqdn。

答案2

您是否尝试过使用带有 URL 的隧道从浏览器访问常规 https 网站https://127.0.0.1/8443?也许它有助于测试。

但我认为您在访问 https 网站时会遇到问题,因为 https 证书,您可能需要更新您的/etc/hosts文件。

答案3

我们也遇到了同样的问题,最后使用了穿梭巴士

流程如下:

  1. 查找服务的 IP,例如使用nslookup
  2. 开始sshuttle -r username@middle_host SERVICE_HOST_IP

相关内容