linux - SSH 拦截 - Linux
问题描述
真的希望这里有人能指出我正确的方向,
预期结果:SSH 成功连接到远程设备。
挑战/背景故事:我们在全国偏远地区有设备,这些设备没有固定的公共 IP 地址(使用 GSM 作为其互联网突破)这些设备能够 SSH 和突破。
关于维护这些设备,我的想法是(如果可能)使用云中的服务器作为中间人,让这些设备创建某种反向隧道到我们的中间人服务器,然后让我们作为管理员拦截它或其他东西那个效果。
再次总结一下,Device 不能直接 ssh 进入,但可以突破。目标是能够从办公室访问他们的终端。
一直在看 mitmssh 但不是在这方面。
服务器 A(没有固定地址,不能直接通过 SSH 连接但有突破)
服务器 B(标准服务器,可用作中间人)
服务器 C(我们的管理员)
尝试了类似“ssh user@serverA -R serverB:12345:ServerA:22”的方法
它创建了隧道,但努力抓住了那个 SSH 连接。
解决方案
我想我经常使用非常相似的东西。我的目标机器连接到具有稳定地址的机器:
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
推荐阅读
- php - 如何在 WordPress 仪表板的管理栏中排列列?
- c++ - 如果函数会返回一个指向 char 数组的指针而我不会使用它怎么办?
- node.js - mocha 和 chai 测试期间的 Node.js api 端点超时
- rendering - HTML css - 谷歌浏览器和边缘是一个像素
- linux - 在添加从 RPM 移植的 pkg 后,JFrog 工件和 MergeList /var/lib/apt/lists "(NewVersion2)" 的问题
- android - Android Studio:等待设备时出错:AVD Pixel_3_API_24 的模拟器进程已终止。在配备 M1 芯片的 Mac Book Pro 上
- java - 与某些 SMTP 服务器的连接时间很长
- python - tkinter - 列表没有得到任何数据
- c# - 如何在命令行上显示 C#(分析器)建议?
- django - django rest框架中上传的文件中包含的标题内容