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

跳板机如何传文件 小白友好指南从SCP到rsync的详细对比解析

2026年6月18日
跳板机

1. 场景与准备

1. 场景说明:本指南假设本地(Local)无法直接访问目标服务器(Target),需通过跳板机(Bastion/Jump)中转。准备:本地有ssh客户端(OpenSSH),已配置好可用于跳板机与目标机的用户凭证(密码或公私钥)。

2. 验证基础 SSH 连通性

2. 步骤:a) 先能直接 ssh 登录跳板机:ssh user@bastion。b) 从跳板机能 ssh 登录目标机:ssh user@target(可在跳板上测试)。若任一环节失败,检查防火墙、用户、密钥权限(~/.ssh 权限为700/600)。

3. 方法一:scp 使用 ProxyJump(推荐最简单)

3. 步骤:a) 单文件本地->目标:scp -J bastion_user@bastion localfile target_user@target:/path/。b) 多文件或目录:scp -r -J bastion_user@bastion localdir/ target_user@target:/path/。注意OpenSSH 7.3+支持 -J。

4. 方法二:scp 使用 ProxyCommand(用于旧版SSH)

4. 步骤:a) 命令格式:scp -o 'ProxyCommand ssh -W %h:%p bastion_user@bastion' localfile target_user@target:/path/。b) 若要从远端下载到本地,把目标与本地互换即可:scp -o ... target_user@target:/path/file ./。

5. 方法三:在 ~/.ssh/config 中配置别名(更友好)

5. 示例配置:在本地编辑~/.ssh/config,写入:<pre>Host bastion HostName bastion.example.com User bastion_user IdentityFile ~/.ssh/id_rsa Host target HostName target.internal User target_user ProxyJump bastion</pre>。保存后直接使用 scp localfile target:/path/。

6. rsync 用法(适合大量或增量同步)

6. rsync 命令:rsync -avz -e 'ssh -J bastion_user@bastion' localdir/ target_user@target:/path/。说明:-a 保持属性,-v 冗余,-z 压缩,-e 指定ssh并通过 -J 使用跳板。若旧版ssh可用 ProxyCommand:-e "ssh -o 'ProxyCommand=ssh -W %h:%p bastion_user@bastion'".

7. 从一台远端服务器复制到另一台远端(跳板中转)

7. 方法:可以在本地使用 scp -3(通过本地做中转),或在本地通过 rsync pull/push:rsync -avz -e 'ssh -J bastion@bastion' src_user@src:/path/ target_user@target:/path/。复杂场景可在跳板机上执行可信脚本。

8. 高级:用 tar+ssh 提高速度或保留特殊权限

8. 命令示例:在本地打包并通过ssh解压到目标:tar czf - localdir | ssh -J bastion_user@bastion target_user@target 'tar xzf - -C /dest/path'。常用于大量小文件以减少握手开销。

9. 常见问题与排错小贴士

9. 排错要点:a) 若提示权限拒绝,检查私钥权限与公钥是否在目标 ~/.ssh/authorized_keys。b) 若跳板登录无问题但转发失败,测试 ProxyCommand 的 ssh -W 是否可用。c) 如遇主机密钥变更,处理 known_hosts 中旧记录或用 ssh-keyscan 添加。

10. SCP 与 RSYNC 对比建议

10. 对比结论:a) 简单单文件快速用 scp(语法直观)。b) 需要增量、保留属性或大规模同步用 rsync(节省带宽、支持断点续传)。c) 在跳板场景,两者都可通过 -J 或 SSH config 无感使用,优先配置 ~/.ssh/config 简化命令。

11. 常见问答一

11. 问:我的OpenSSH版本不支持 -J,该怎么办?

11. 答:可用 -o ProxyCommand 'ssh -W %h:%p bastion_user@bastion' 来替代,或在~/.ssh/config 为目标配置 ProxyCommand 字段;若两端都受限,可在跳板上启用 netcat/nc 并调整 ProxyCommand。

12. 常见问答二

12. 问:使用 rsync 速度很慢或断开,如何优化?

12. 答:可启用压缩参数 -z,增加 -e 'ssh -C -o CompressionLevel=9';对于大量小文件先打包(tar),提升 TCP 窗口或在 rsync 加上 --whole-file(跳过增量计算)也有帮助。

13. 常见问答三

13. 问:如何保证传输安全且不暴露跳板凭证?

13. 答:建议使用公私钥认证并禁用密码登录,限制跳板的端口与用户权限,开启SSH Agent转发仅在必要场景并谨慎使用;在~/.ssh/config 中使用IdentityFile限定密钥,并在跳板上最小化长期存放私钥的需求。


来源:跳板机如何传文件 小白友好指南从SCP到rsync的详细对比解析