除了传统的先将文件传输到堡垒机再从远端网络内部进行传输操作外,可以使用以下两种方法传输文件
一、使用ssh端口转发(隧道)功能
先使用命令在本地打开一个通过堡垒机映射到远端目标机的端口:
ssh -L {本地端口}:{目标机ip}:{目标机端口} -p{堡垒机端口} {堡垒机用户名}@{堡垒机地址} -i {本地rsa密钥路径}
此时可以向本地的这个端口传输文件,文件会被自动转发到目标机器
scp -P {本地已映射端口} {本地文件路径} {目标机用户}@localhost:{目标机目标路径}
二、直接配置scp的代理参数,实现文件转发
Host test.host
User {目标机用户}
HostName {目标机ip}
Port 22
ProxyCommand ssh -q -W %h:%p jump
Host jump
User {跳板机用户}
HostName {跳板机ip}
Port 22
IdentityFile {登录密钥}