SSH代理设置

目标
从 C 机器使用 SSH 访问 A

描述:
C 外网设备
B 服务器局域网的出口设备
A 服务器局域网中的某台设备

解决方案
在 A 机器上做到 B 机器的反向代理;在 B 机器上做正向代理本地端口转发。
B机器开启两个接口:
<port_b1>:提供B->A的转发
<port_b2>:提供C->B的转发

机器号 IP(举例) 用户名 说明 解决方案 解释
A (目标服务器) 192.168.100.99 usr_a 目标服务器,在局域网中,可以访问 A ssh -fCNR <port_b1>:localhost:22 [email protected] <port_b1> 为 B 机器上端口,用来与 A 机器上的22端口绑定。
B(代理服务器) 100.100.100.100 usr_b 代理服务器,在外网中,无法访问 A ssh -fCNL ‘*:<port_b2>:localhost:<port_b1>’ localhost <port_b2> 为本地转发端口,用以和外网通信,并将数据转发到 <port_b1>,实现可以从其他机器访问。
C(外网设备) - - 可以直接访问 B,无法直接访问 A ssh -p <port_b2> [email protected] <port_b2>为B的对外接口

比如这里:
A-> ssh -CNR 9998:localhost:22 [email protected]
B-> ssh -CNL *:9999:localhost:9998 localhost
C-> ssh -p 9999 [email protected]

三者形成C->B,A->B的SSH代理转发。后台运行使用-f,改为-fCNR或-fCNL。

示例一:
A-> ssh -CNR 9998:localhost:22 [email protected]
B-> ssh -CNL *:9999:localhost:9998 localhost
C-> ssh -p 9999 [email protected]

示例二:
A-> ssh -CNR 19998:localhost:22 [email protected]
B-> ssh -CNL *:19999:localhost:19998 localhost
C-> ssh -p 19999 [email protected]

SSH 参数解释 解释
-f 后台运行
-C 允许压缩数据
-N 不执行任何命令
-R 将端口绑定到远程服务器,反向代理
-L 将端口绑定到本地客户端,正向代理

猜你喜欢

转载自blog.csdn.net/yechen2320374/article/details/131574747