售前咨询400-838-0503

如何通过SSH传输文件?

发布:2025-04-02 22:26

SSH文件传输完全指南:3种高效方法详解

在远程服务器管理中,SSH文件传输是每个运维人员必须掌握的技能。本文将深入解析三种最常用的SSH文件传输方法,帮助您在不同场景下选择最优解决方案。

一、SCP命令:简单直接的文件传输

SCP(Secure Copy Protocol)是最基础的SSH文件传输方式,语法简单直观:

# 本地→远程
scp /本地/文件路径 用户名@远程主机IP:/远程/目录

# 远程→本地
scp 用户名@远程主机IP:/远程/文件路径 /本地/目录

实用技巧:

  • 递归传输目录:添加-r参数可传输整个文件夹
  • 保留文件属性-p参数保持修改时间等元数据
  • 限速传输-l 500限制带宽为500Kbps

二、SFTP:交互式安全文件传输

SFTP提供了类似FTP的交互式界面,更适合复杂传输场景:

sftp 用户名@远程主机IP
# 连接后可使用以下常用命令:
put 本地文件 → 上传
get 远程文件 → 下载
ls → 列出远程目录
lls → 列出本地目录

专业建议:

批量传输文件时,可在脚本中使用batch模式:
sftp -b 批处理文件 用户名@主机

三、Rsync over SSH:智能增量同步

对于需要频繁同步的场景,rsync是最佳选择:

rsync -avz -e ssh /本地/目录 用户名@主机:/远程/目录

参数说明:
-a 归档模式(保留所有属性)
-v 显示详细过程
-z 启用压缩传输

高级用法:

  1. 断点续传--partial+--progress
  2. 排除文件--exclude='*.tmp'
  3. 带宽控制--bwlimit=1000(KB/s)

三种方法对比表

方法 适用场景 传输速度 学习曲线
SCP 简单文件传输 简单
SFTP 交互式操作 中等 中等
Rsync 大量数据同步 最快(增量) 较复杂

常见问题排查

Q1: 连接超时怎么办?
检查防火墙设置,确认22端口开放;尝试添加-o ConnectTimeout=30参数
Q2: 传输速度慢如何优化?
使用-C启用压缩;或改用rsync的增量传输
Q3: 权限被拒绝错误?
确保目标目录有写入权限,可尝试sudo或修改目录权限

最佳实践建议

根据我们的运维经验:
1. 单次小文件传输 → 选择SCP
2. 需要交互式操作 → 使用SFTP
3. 定期备份/同步 → Rsync最佳

记住:始终通过-v参数查看详细日志,遇到问题可添加-vvv获取更详细调试信息。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单