1.场景
- 涉及4台机子:本地电脑A、远程服务器B、远程服务器C、远程服务器D
- 4台机子的互联访问情况如下:
- A无法直接访问D
- A能访问B
- B能访问C
- C能访问D
- 需要想办法从本地电脑A直接访问服务器D
2.ssh 逐台跳转到服务器D 手动输入逐台跳转
- 使用xshell或其他终端:
- 从本地电脑A先ssh访问B,输入B的账号密码:会话1[服务器B]
- 接着继续ssh访问C,输入C的账号密码:会话1[服务器C]
- 接着继续ssh访问D,输入D的账号密码:会话1[服务器D]
- 这样的操作,逐台跳转到目标服务器D
- 手动输入ssh命令、账号密码过多
3.建立ssh隧道跳转服务器D ssh隧道
- 基于上述手动输入命令跳转,过于复杂
- 希望能达到从本地电脑A直接ssh访问D,输入D的账号密码
- 利用ssh隧道
- 先本地电脑A ssh访问B,建立local->C的ssh隧道
- xshell正常连接B,提供B的ip/port/账号/密码
- 设置ssh隧道,设置local:port->C:22的映射
- 重新连接B
- 执行vi等长连接操作
- 之后本地电脑A 直接访问C
- 连接local:port,提供C的账号/密码
- 能直接连接C,不必手动从B跳转C
- 后续连接D,类似
- 在连接C后,设置local:port2->D:22的映射即ssh隧道
- 能直接连接D,连接local:port2,提供D的账号/密码
- 如何减少手动操作
- 其中A->B->C的ssh隧道,参考