场景:
目标: 利用scp将远程主机SERVER2上的某文件FILE拉至本地主机SERVER1上, 脚本为
#!/bin/bash
scp user2@SERVER2:/PATH_OF_FILE .
限制: 由于安全因素,SERVER2和SERVER1之间不能建立连接。另外有一远程主机SERVER3,即可以连接SERVER1,也能连接SERVER2
解决方案: 考虑使用 ssh port forwarding建立隧道,脚本为
#!/bin/bash
ssh -f -N -L 1234:SERVER2:22 user3@SERVER3
scp -P 1234 user2@localhost:/PATH_OF_FILE .
第二行语句建立一条在背景运行的ssh隧道。-f 表示在后台运行,-N 表示只建立隧道