用户透明 SSH 多跳

用户透明 SSH 多跳

我的问题和这个问题一样通过两台服务器的 SSH 隧道访问端口 9091 上的 Web 服务(主要是因为我问了这个问题)。

但现在的不同之处在于,我是从无法使用的 Chromebook 访问它的ProxyCommand。它所​​得到的只是在沙盒 Chrome 选项卡中运行的基本 NaCl shell。

以下是我之前提出的问题的回顾:

我有 3 台机器:

  • remotePi(树莓派,在世界的某个地方)
  • localPi(另一个树莓派,在我的本地网络中,我对它有完全访问权限,包括 root,无监视器,无 kb,作为无头服务器运行)
  • Chromebook(我的本地机器是与位于同一本地网络上的 Chromebook localPi,功能有限,但确实具有如上链接所述的 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 上,我相信无论如何一定有办法做到这一点。

所以我想知道两种可能的解决方案:

  1. 一些非常聪明且很长的 SSH 命令将“替换”ProxyCommand正在执行的操作。我总是在类似的教程中看到这个关联16864但它总是依赖于主机名,我只有要连接的端口。

  2. (首选)在localPiSSH 配置中添加一些魔法,使其监听某些非标准端口(例如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 服务器。

这实际上就是在隧道中挖掘隧道。

相关内容