使用ssh本地端口转发(Local forwarding),访问无法直接访问的节点

环境:

假设本地A节点可以访问B节点10.20.30.40,B节点可以访问C节点192.168.0.123,但从A无法直接访问C。

在A上执行本地端口映射:

将192.168.0.123的22端口,通过10.20.30.40映射到本地的2222端口
ssh -f -N -g -L 2222:192.168.0.123:22 10.20.30.40

参数解释:
-f: 认证后,将当前ssh进程放在后台执行
-N: 只连接、不执行命令
-g: 允许其它机器连接转发端口(即转发端口监听在0.0.0.0,不会监听IPv6地址)
-L [bind_address:]port:host:hostport: 将C节点192.168.0.123的22端口映射到本地A节点的2222端口
10.20.30.40: 中间机器B节点,用于中转A和C之间的数据

访问C节点:

访问本地A节点2222端口就相当于访问C节点22端口,可以执行以下操作:

  1. ssh登陆
    ssh -p 2222 127.0.0.1
  2. 拷贝文件
    scp -P 2222 127.0.0.1:/etc/hosts /tmp/hosts
  3. 使用sftp工具访问A节点的2222端口

参考文献

http://blog.chinaunix.net/uid-7530389-id-2050093.html

你可能感兴趣的:(使用ssh本地端口转发(Local forwarding),访问无法直接访问的节点)