linux - 树莓派 SSH 反向隧道,它是如何工作的?帮助设置它

标签 linux apache ssh webserver raspberry-pi

我一直在用树莓派做实验,我想用树莓派上的 gpio 做一些家庭自动化实验,但我希望它能连接到互联网,这样我就可以读取状态并进行更改从任何地方...

我一直在读到反向 ssh 连接是实现此目的的最佳方式,因为它是安全的。

我读到的内容背后的想法是,如果我有一个可用的网络服务器(我将使用我公司的进行测试,他们不会介意)我可以从 pi ssh 到它,然后从 ssh 到它我的电脑,在通过 ssh 连接到服务器后,我可以通过安全 shell 控制 pi。

我的问题是,由于 pi 正在连接到服务器,这会导致任何防火墙问题吗?它不应该,因为它是一个出站连接,据我所知,这是这样做的实际优势......

我想做到这样,只要我们都连接到互联网,我就可以在任何地方拥有 pi 并从任何地方访问它,如果不是为了这个,我会创建一个 vpn,但是,如果例如,我将 pi 更改为我的公司,我无法在家里控制它...明白我的意思以及我为什么要研究这个反向隧道选项吗?

此外,再往前走一点,我的计划是创建一个 Web 界面来控制 pi,我是否能够拥有一个 javascript 界面并通过 apache 向 pi 发送 ssh 命令?

感谢您抽出宝贵时间,如果需要任何进一步的信息,请询问 :)

最佳答案

您当然可以只在 Pi 上安装 apache 并创建 API 或排序?

不过对于 SSH 部分,请快速阅读:http://www.vdomck.org/2005/11/reversing-ssh-connection.html

在您的情况下,我假设 Pi 是“有防火墙”的设备,而公司网络服务器是某种“网关”。 如果这个假设是正确的:

ssh -f -N -R 10000:localhost:22 username@ip_address_of_webserver

现在网络服务器正在监听端口 10000 并转发到端口 22 上的 pi。 在您的笔记本电脑上:

ssh username@localhost -p 10000

(用户名是 Pi 的用户名) 这将通过网络服务器连接到 Pi。

关于linux - 树莓派 SSH 反向隧道,它是如何工作的?帮助设置它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25864806/

相关文章:

regex - .htaccess 用于 SSL?

php - 使用 htaccess 将 Javascript 转换为 php 处理程序页面

ssh - 无法通过 SSH 连接到 openshift

ssh - 用于克隆私有(private) git repo 的 Dockerfile

linux - 如何在设备树中配置多个 I/O 扩展器 PCF8574a?

linux - 通过执行命令 setenv ipaddr "textbox"从 html 设置嵌入式系统的 IP 地址

linux - Scrapyd 未在启动时启动 - Ubuntu 14

apache - .htaccess 拒绝所有人不起作用

ruby - 将 net-ssh 与适用于 ssh 命令的选项一起使用时出现 ConnectionTimeout 错误?

linux - 用于嵌入式 Linux 的 LVDS 屏幕