最常用的方法是使用scp或rsync通过ssh上传。示例命令:scp myfile user@bastion.example.com:/home/user/ 或 rsync -avz -e "ssh" ./dir/ user@bastion:/path/。上传前建议使用公钥认证并禁用密码登录以提高安全性。
在只允许HTTP/HTTPS代理的环境,可使用工具如corkscrew或proxytunnel配合ssh的ProxyCommand穿透代理。例如在~/.ssh/config中配置:Host bastion ProxyCommand corkscrew proxy.example.com 8080 %h %p。然后用scp或rsync正常传输。注意:部分代理会阻断CONNECT目标端口,需与网络管理员确认。
可采用两种常见方式:一是使用ProxyJump或ProxyCommand直接支持跳板跳转:scp -o ProxyJump=user@bastion targetfile user@internal:/path/。二是先把文件上传到跳板机再从跳板机转发到内网主机,或用SSH的远程端口转发/反向隧道(ssh -R)配合nc/socat在跳板机上转发流量。推荐使用rsync+SSH实现断点续传与高效同步。
可以用ssh -D 1080 user@bastion在本地创建一个SOCKS5代理,然后通过代理工具(如proxychains、tsocks)让scp/rsync走SOCKS代理,或者把浏览器/应用指向该SOCKS代理进行文件上传。如果要让远端服务访问本地资源,可使用ssh反向隧道(ssh -R remote_port:localhost:local_port user@bastion)。注意安全,避免在不受信任跳板机上启用SSH agent forwarding。
推荐使用rsync(支持增量、压缩、恢复)或分片工具(如split + scp)。常见实践:rsync -avz --partial --progress -e "ssh -J user@bastion" ./large/ user@internal:/dest/。当网络受限或不稳定时,开启压缩(-z)、限制带宽(--bwlimit)并使用--partial以便断点续传。对企业HTTP代理环境,先建立可用的隧道(corkscrew/proxytunnel或VPN)再执行大文件传输。始终使用密钥认证、最小权限的目的路径,并定期检查日志和传输完整性(如使用sha256sum校验)。