我的问题和这个问题一样通过两台服务器的 SSH 隧道访问端口 9091 上的 Web 服务(主要是因为我问了这个问题)。
但现在的不同之处在于,我是从无法使用的 Chromebook 访问它的ProxyCommand
。它所得到的只是在沙盒 Chrome 选项卡中运行的基本 NaCl shell。
这是运行它的“shell 应用程序”: https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo?utm_source=chrome-app-launcher-info-dialog
这是包含完整信息的常见问题解答。 https://chromium.googlesource.com/apps/libapps/+/master/nassh/doc/faq.txt
以下是我之前提出的问题的回顾:
我有 3 台机器:
remotePi
(树莓派,在世界的某个地方)localPi
(另一个树莓派,在我的本地网络中,我对它有完全访问权限,包括 root,无监视器,无 kb,作为无头服务器运行)Chromebook
(我的本地机器是与位于同一本地网络上的 ChromebooklocalPi
,功能有限,但确实具有如上链接所述的 SSH)。
remotePi
有一个恒定的 SSH 隧道localPi
,它通过调用以下命令来实现
ssh -N -R 16864:localhost:22 -p 2222 <user_on_lan>@<external_lan_ip>
我可以remotePi
通过以下方式访问终端
Chromebook> ssh <user_on_localPi>@<localPI_ip>
localPi> ssh -l <user_on_remotePi> -p 16846 localhost
remotePi
我有一个守护进程服务(Web 界面)在监听9091
。
一切的“绘画”:
16864:tunnel:22 9091:service
Chromebook <--local_net--> localPi <--internet--> remotePi
所以我需要的是:
Chromebook
通过浏览器访问 remotePi 中的守护程序服务 Web 界面127.0.0.1:9091/web/
在我之前的电脑上(链接问题中显示,ubuntu 笔记本电脑),我通过ProxyCommand
在我的配置上使用并调用来做到这一点ssh -L9091:localhost:9091 user_on_remotePi@remotePi -N
,但现在我在无法使用它的 Chromebook 上,我相信无论如何一定有办法做到这一点。
所以我想知道两种可能的解决方案:
一些非常聪明且很长的 SSH 命令将“替换”
ProxyCommand
正在执行的操作。我总是在类似的教程中看到这个关联16864
但它总是依赖于主机名,我只有要连接的端口。(首选)在
localPi
SSH 配置中添加一些魔法,使其监听某些非标准端口(例如2222
)并自动将该连接重定向到user_on_remotePi:localhost:16864
。这样,当我从 Chromebook 调用时ssh user_on_localPI -p 2222 localPi_ip
,就会localPi
将其直接重定向到 remotePi 上的正确用户。
正如您所注意到的,我是一个网络新手,我的主要专业知识是应用程序开发,因此,如果您能提供任何帮助,我将不胜感激。
有任何想法吗?
答案1
我们在聊天中谈到了这一点
LocalPi>ssh -L *:5678:127.0.0.1:9091 [email protected] -p 16864
然后在 chromebook 上, http://localpi_IP:5678
因此远程 pi 已完成 SSH -R 在本地 pi 上创建端口 16864。
他已经能够将终端连接到他的 raspberry pi, 我们添加了一个 -L 来打开他 localpi 上的端口 5678,这样他就可以从一个设备(例如 chromebook)连接到他的 localpi,然后转到他的 remotepi,最后转发到它自己/他的远程 pi 上的 Web 服务器。localpi>ssh [email protected] -p 16864
所以总共有两个 ssh 命令。一个从他的远程 pi 到他的本地 pi。另一个从他的本地 pi 到他的远程 pi。
我们只是修改了第二个,从他的 localpi 到他的 remotepi。通过隧道连接到他的远程 pi 上的 Web 服务器。
这实际上就是在隧道中挖掘隧道。