linux - 如何向 shell 提供 "reverse ssh"?

标签 linux shell ssh remote-access nat

场景:

许多嵌入式设备(运行 Linux)在野外,在路由器后面,所以 NAT'd 我们无法连接到它们。

我们需要支持人员能够在任何设备上启动终端/shell session 。

他们的本地终端也将在公司防火墙后面进行 NAT,因此我们需要一些他们和设备都可以连接到的中央“汇合点”。

如有必要,我们可以要求支持人员登录某种终端服务器,但我更喜欢在他们的桌面上弹出一个终端窗口的解决方案。

我们可以(通过其他方式)告诉设备执行一些任意脚本或应用程序来启动 session 。

没有 NAT,它只是通过 SSH 连接到设备,然后我们就可以走了。但是在这个 NAT 环境中我有哪些选择?

如果需要,我们可以在任一端或 session 点服务器上开发代码,但显然如果有应用程序,我们就不必编写任何东西,甚至更好。

欢迎指出我可能遗漏的其他问题(尽管我已经看过)或我应该考虑用于中央“会面点”服务器的应用程序

最佳答案

如何简单地设置一个设备和支持用户都可以访问的 ssh 服务器,并让设备设置一个反向隧道(使用 remote port forwarding)?

ssh -R 10022:localhost:22 device@server

然后支持人员可以简单地连接到服务器并使用登录

ssh -p 10022 localhost

当然,这里需要考虑几个安全方面,具体取决于设备持有/可以访问的信息类型以及支持组织的设置方式。

关于linux - 如何向 shell 提供 "reverse ssh"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11793019/

相关文章:

linux - 在一台机器上编译gcc4.4.6,如何让另一台机器使用?

c# - Linux 构建代理上的 SonarQube MsBuild 扫描器

vim - 如何在 tcsh shell 的 Vi 模式下将 'jk' 绑定(bind)到 Esc 键

linux - 在目录中一个一个地循环文件,并在屏幕上显示对它们执行命令的结果

linux - 在每次 vagrant up 命令后,如何防止 RSA key 的指纹发生变化?

ssh - Amazon EC2 SSH 服务器发送 : ( publickey, gssapi-keyex,gssapi-with-mic)

linux - 使用固定种子打乱 find 的输出

linux - 获取上次执行命令的 PID(无背景)

shell - rake 命令在控制台中的 Tab 补全

windows - 使用 PuTTY 连接到运行 freeSSHd 的 Amazon EC2 Windows 实例