1. 精华:用 scp 快速上传单个或少量 文件,支持 ProxyJump 与端口转发,最快上手。
2. 精华:用 rsync 做增量同步或断点续传,效率高、带校验,适合大量或经常更新的 文件。

3. 精华:用 sshfs 或 rclone 把远端挂载为本地盘,交互式操作更直观,适合需要频繁读写的场景。
首先说明背景:所谓 跳板机(Bastion Host)通常作为内部网络的入口节点,直连目标服务器受限,必须先把 文件上传到该 跳板机 再转发或再分发。下面逐一讲解主要方法、典型命令和安全与适用建议,结合实战经验给出首选方案。
方法一:scp(简单、普适)
步骤:在本地执行 scp localfile user@bastion:/path/。若需要经由跳板机到后端服务器,可用 OpenSSH 的 ProxyJump:scp -o ProxyJump=user@bastion localfile user@target:/path/。若跳板机监听非标准端口,加入 -P 或 -oPort=。适用:单文件或少量文件、临时操作。
方法二:sftp(交互式、安全)
步骤:在本地 sftp -oPort=22 user@bastion,然后用 put 上传。支持批处理脚本 sftp -b batchfile。若要穿透跳板机,可先 SSH 登录跳板机再从跳板机 sftp 到目标,或使用 ProxyJump 配置。适用:需要交互或目录浏览时优先。
方法三:rsync(高效同步)
步骤:本地运行 rsync -avz -e "ssh -J user@bastion" ./localdir/ user@target:/remotedir/。rsync 优点是增量、压缩与校验,适合大目录或多次同步;断点续传友好。注意权限与时间戳选项 -a。
方法四:sshfs(挂载为本地盘)
步骤:在本地安装 sshfs,执行 sshfs -oIdentityFile=~/.ssh/id_rsa user@bastion:/remote/path /mnt/bastion。之后像操作本地文件一样读写。适合开发、调试或程序直接访问文件。缺点:IO 性能受网络影响,生产环境需谨慎。
方法五:rclone 与 HTTP/云存储(灵活跨网段)
说明:当跳板机可访问外网或云存储时,先上传到云端(例如 S3、HTTP),再在跳板机上用 rclone 或 curl/wget 拉取:rclone copy remote:bucket/path /remote/path。适合大文件、跨数据中心或受限端口场景。
穿透与代理技巧(关键)
要在一条命令穿透跳板机,常用 OpenSSH 的 ProxyJump 或 ProxyCommand(如 nc)。例如:scp -o ProxyJump=jumpuser@jumphost localfile user@target:/path。若仅能通过跳板机代理外网,可用本地端口转发:ssh -L 2222:target:22 user@bastion,然后本地 scp -P 2222。
安全建议与合规(EEAT) 务必使用密钥认证、禁用密码登录并限制跳板机上可执行的命令或 SFTP 根目录。保存审计日志,使用 MFA(若支持)。作为具备多年运维经验的作者,我建议在生产环境使用 rsync + 公钥 + 审计策略;临时任务用 scp。
对比与选型参考 - 速度与简单性:scp(小文件); - 大量或增量同步:rsync; - 交互与目录管理:sftp 或 sshfs; - 跨云或受限网络:rclone 或云存储中转; - 自动化:在脚本中用 ssh 配合 rsync/sftp,或在 CI/CD 中结合 ProxyJump。
实战小技巧(原创劲爆实践)
1) 当跳板机不能直接写大量文件时,先在本地打包并压缩:tar czf - dir | ssh user@bastion 'cat > /tmp/dir.tar.gz',再远端解压。2) 遇到慢速网络,配合 gzip -1 或 rsync -z 做压缩;3) 用 scp -3 在两端互传经由本地中转(注意安全)。
结语与作者说明 本文基于多年企业运维与安全审计经验编写,覆盖从简单上传到复杂穿透的常见方案,并给出命令示例与安全建议。若需针对你的网络环境给出一步步截图或自动化脚本,我可以根据具体 SSH 配置、端口与密钥状态做定制化指导。