首页 > 解决方案 > SSH 拦截 - Linux

问题描述

真的希望这里有人能指出我正确的方向,

预期结果:SSH 成功连接到远程设备。

挑战/背景故事:我们在全国偏远地区有设备,这些设备没有固定的公共 IP 地址(使用 GSM 作为其互联网突破)这些设备能够 SSH 和突破。

关于维护这些设备,我的想法是(如果可能)使用云中的服务器作为中间人,让这些设备创建某种反向隧道到我们的中间人服务器,然后让我们作为管理员拦截它或其他东西那个效果。

再次总结一下,Device 不能直接 ssh 进入,但可以突破。目标是能够从办公室访问他们的终端。

一直在看 mitmssh 但不是在这方面。

服务器 A(没有固定地址,不能直接通过 SSH 连接但有突破)

服务器 B(标准服务器,可用作中间人)

服务器 C(我们的管理员)

尝试了类似“ssh user@serverA -R serverB:12345:ServerA:22”的方法

它创建了隧道,但努力抓住了那个 SSH 连接。

标签: linuxssh

解决方案


我想我经常使用非常相似的东西。我的目标机器连接到具有稳定地址的机器:

ssh midpoint -R 2022:localhost:22

我的~/.ssh/config文件知道真实的HostName. 我config的工作机器上的文件定义了ProxyCommand使用此隧道 TCP 连接的选项。喜欢:

Host target
  ProxyCommand ssh -q midpoint nc localhost 2022

使用 netcat 的原因是为了ssh-agent表现得更好。

我一直在四处寻找,似乎 OpenSSH 现在对此进行了特定处理(-W命令行选项和JumpHost配置文件中)。例如https://stackoverflow.com/a/29176698/1358308


推荐阅读