你好,我已经对这个问题进行了深入研究,但仍然无法让事情顺利进行,任何帮助我都非常感谢。
目前我有一个家庭服务器,用于构建我的 beaglebone black 的所有二进制文件。我非常喜欢它,我可以从任何计算机通过 ssh 进入,并且我的所有本地 VIM 和 tmuxinator 设置以及 arm 交叉编译器工具都已设置好。
当我尝试调试时,问题出现了。我的本地设置是在服务器上构建,然后连接到在 beaglebone 上运行的 gdbserver 以调试可执行文件。问题是远程的,我有一台笔记本电脑,我用它来 SSH 到我的远程构建服务器,但我的 beaglebone 已连接到我的笔记本电脑。是否可以从我的笔记本电脑到我的远程构建服务器创建一个隧道,以便它可以 ssh 到我的 beaglebone 以加载构建的可执行文件?
答案1
我建议建立一个反向隧道(从您的笔记本电脑启动,因为它可以访问 beaglebone),它会在您的构建服务器上打开一个与 beaglebone 的 SSH 端口绑定的端口。只要您保持该隧道处于活动状态,您就可以通过 SSH 直接从您的构建服务器访问 beaglebone,如果我没有误解您的问题,这就是您想要实现的?
从你的笔记本电脑上打开一个终端并从你的构建服务器到你的 beaglebone 建立反向隧道
ssh -R 9876:beaglebone:22 server
这将在服务器上打开一个端口 9876(选择一个方便的数字),并连接到比格犬骨地址(假设它是默认值 22)。保持此会话打开。
现在,作为服务器上的用户,您应该能够访问比格犬骨通过与新创建的端口建立 SSH 连接来通过隧道,即
ssh -p 9876 localhost
我以前用过这种方法,但现在没有办法测试。如果这是你想要的,请告诉我。我认为有 SSH 标志可以在不使用终端的情况下建立反向隧道,但我从来没想过要尝试。