新闻资讯
领先云端方案商,专注云桌面、云手机研发,凭核心虚拟化技术与云端算力,打造安全高效数字化平台,提供全周期支持。
分类
相关文章
热门标签

运维常见怎么把文件放到跳板机上 SCP、SFTP与rsync实操对照说明

2026年6月12日

运维实战:把文件放到跳板机上,三种主流工具对照

1. 精华:选择SCP做快速一对一拷贝,简单直接但缺乏断点续传与增量能力。

2. 精华:选择SFTP做交互式管理或批量脚本(batch)上传,适合需要远程文件浏览场景。

3. 精华:选择rsync做高效增量同步、压缩与权限保留,跨跳板时建议配合SSH代理。

本文由有多年企业级运维实战经验的作者撰写,覆盖命令示例、跳板(bastion/跳板机)穿透技巧、常见错误排查及安全建议,符合Google EEAT准则,确保可验证、可靠、实操性强。

一、准备工作:身份与密钥。生产环境请务必使用密钥认证(SSH key),在本地生成密钥并把公钥放到跳板与目标主机的~/.ssh/authorized_keys,设置合适权限:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。

二、直接把文件上传到跳板:SCP示例。最直接的方式是使用SCP

scp -P 22 ./localfile user@bastion:/home/user/

当跳板就是目标主机时,这条命令最简单快捷。但若需通过跳板到内网目标机,需要跳板转发或ProxyJump。

三、通过跳板把文件传到内网主机:三种常用模式对比。模式A:本地->跳板->内网(两次scp);模式B:scp -3或ProxyJump(推荐);模式C:通过rsync -e 'ssh -J'做高效同步。

模式A示例(两步):

scp ./file user@bastion:/tmp/

ssh user@bastion 'scp /tmp/file user2@internal:/opt/data/'

这种方式直观,但容易留下临时文件、慢且人工步骤多,不适合自动化。

模式B示例(ProxyJump,一条命令穿透):

scp -o ProxyJump=user@bastion ./localfile user2@internal:/opt/data/

或使用SSH简写配置~/.ssh/config,便于脚本化与批量操作。

四、SFTP:交互与批处理。适合交互式上传和远程管理:

sftp -o ProxyJump=user@bastion user2@internal

在sftp交互下使用put/get;批量脚本可以把命令写入batchfile然后执行:sftp -b batchfile user@host。

五、rsync:最推荐用于大文件与增量同步的利器。支持压缩、断点续传、权限保留与删除选项。

常用命令:

rsync -avz -e "ssh -J user@bastion" ./localdir/ user2@internal:/opt/data/

说明:-a 保留属性,-v 详细,-z 压缩。rsync 必须考虑源路径末尾斜杠带来的行为差异(有斜杠同步目录内容,无斜杠同步目录本身)。

六、性能与带宽控制。大文件传输建议加上--progress查看进度;用--bwlimit=KBPS限制带宽。对于高延迟链路,开启压缩(-z)对小文件有帮助,但CPU受限时需衡量。

七、安全加固建议(必须做):禁用密码登录,只允许密钥;在跳板配置命令白名单或强制使用ProxyCommand;使用MFA或堡垒机日志(审计)。同时在SSH服务端开启PermitRootLogin no和AllowUsers策略。

八、错误排查与常见坑:

1) Permission denied:检查authorized_keys、~/.ssh权限及SELinux;2) ssh: connect to host port 22: Connection refused:确认跳板/目标主机防火墙与ssh服务;3) rsync权限问题:用--rsync-path='sudo rsync'或调整目标权限。

九、实践技巧(提高效率与可靠性):

- 使用~/.ssh/config配置Host、ProxyJump、IdentityFile,实现一键命令;

- 通过scp/rsync的--partial与--append选项实现断点续传;

- 在CI/自动化中避免明文密码,使用密钥与短期临时密钥;

- 对大规模主机使用并发工具(pssh、pdsh、Ansible)结合rsync分发。

十、对比总结(一句话):SCP适合简单拷贝、SFTP适合交互管理、rsync适合高效增量同步与持续分发;跨跳板优先用ProxyJump或SSH代理实现透明穿透。

附:常用SSH配置示例(放在~/.ssh/config)便于运维:

Host bastion HostName bastion.example.com User user IdentityFile ~/.ssh/id_rsa_bastion

Host internal HostName internal.private User user2 ProxyJump bastion IdentityFile ~/.ssh/id_rsa_internal

写在最后:运维的世界没有万能钥匙,但掌握SCP/SFTP/rsync这“三板斧”并配合安全策略与自动化脚本,就能把文件稳、快、安全地送到任何一个跳板机背后的内网主机上。若你需要,我可以根据你的网络拓扑和权限模型,定制最适合的脚本与SSH配置示例。


来源:运维常见怎么把文件放到跳板机上 SCP、SFTP与rsync实操对照说明