SSH远程拷贝文件有哪些详细常用命令?具体操作步骤如何实现?

SSH(Secure Shell)是一种加密的网络协议,常用于远程登录和文件传输,在SSH环境下,拷贝文件主要通过scp(secure copy)和sftp(SSH file transfer protocol)两种命令实现,rsync(remote synchronization)工具也可结合SSH使用,适合增量同步场景,以下是具体命令用法和场景说明。

ssh怎么拷贝文件命令

scp命令:快速单次文件/目录拷贝

scp基于SSH协议,通过加密传输保障安全性,适合小文件或一次性拷贝,语法格式为:
scp [选项] 源文件 目标地址
源文件/目标地址格式:本地路径(如/home/file.txt)或远程路径(如user@host:/path/to/file)。

常用选项及场景

选项 作用 示例
-r 递归拷贝目录 本地目录→远程:scp -r /local/folder user@remote:/remote/folder
-P 指定SSH端口(默认22,需大写) scp -P 2222 file.txt user@remote:/home/
-p 保留文件权限、时间戳 scp -p file.txt user@remote:/home/
-C 启用压缩(适合大文件) scp -C large_file.zip user@remote:/home/
-v 显示详细传输过程(调试用) scp -v file.txt user@remote:/home/

典型用例

  1. 本地→远程:拷贝本地文件到远程服务器指定目录
    scp /home/user/file.txt root@192.168.1.100:/opt/
  2. 远程→本地:从远程服务器下载文件到本地
    scp root@192.168.1.100:/opt/file.txt /home/user/
  3. 远程→远程:通过本地主机中转,直接在两台远程服务器间拷贝(避免本地存储)
    scp user1@host1:/file.txt user2@host2:/backup/

sftp命令:交互式文件管理

sftp是SSH的文件传输协议,提供类似FTP的交互式界面,支持上传、下载、删除、目录操作等,适合批量管理或复杂场景,通过sftp user@host登录后,进入命令行交互模式:

ssh怎么拷贝文件命令

常用交互命令

命令 作用 示例
get 下载远程文件到本地 get remote_file.txt /home/local/
put 上传本地文件到远程 put local_file.txt /home/remote/
lcd 切换本地目录 lcd /home/user/download
cd 切换远程目录 cd /var/log
mget/mput 批量下载/上传(支持通配符) mget *.log
ls/dir 列出远程目录文件 ls -l
rm 删除远程文件 rm old_file.txt

使用流程

  1. 连接远程服务器:sftp user@192.168.1.100
  2. 下载文件:get /remote/path/file.txt /local/path/
  3. 上传文件:put /local/path/file.txt /remote/path/
  4. 退出:exit

rsync命令:增量同步(高效大文件/目录同步)

rsync通过差异算法仅传输变化的文件,适合大文件、频繁同步或备份场景,结合SSH使用时语法为:
rsync [选项] 源路径 目标路径

核心优势与选项

选项 作用 示例
-a 归档模式(保留权限、时间戳等,相当于-rlptgoD rsync -av /local/folder/ user@remote:/remote/
-v 显示同步过程 rsync -v file.txt user@remote:/home/
-z 压缩传输(节省带宽) rsync -az /local/ user@remote:/remote/
--progress 显示传输进度条 rsync --progress large_file.zip user@remote:/home/
--delete 删除目标中多余的文件(确保同步一致性) rsync -a --delete /source/ /destination/

注意事项

  • 源路径末尾加(如/local/folder/)表示同步目录内容,不加则同步目录本身。
  • 需在远程服务器安装rsync(默认多数Linux系统已安装)。

注意事项

  1. 权限与认证:确保本地用户有远程服务器目标路径的读写权限,推荐使用SSH密钥认证(避免密码输错)。
  2. 端口与防火墙:若SSH端口非默认22,需用-P指定,并确保防火墙开放该端口。
  3. 大文件传输:超大文件可能因网络波动中断,rsync支持断点续传(通过--partial选项),scp需手动重新传输。

相关问答FAQs

Q1: scp和rsync有什么区别?如何选择?
A: scp基于SSH协议,适合小文件或一次性拷贝,简单直接但无法断点续传;rsync通过增量算法传输,仅同步变化部分,适合大文件、频繁同步或备份场景,支持断点续传和删除多余文件,若需快速传输小文件用scp,需高效同步或大文件传输用rsync。

ssh怎么拷贝文件命令

Q2: sftp和ftp有什么区别?为什么推荐sftp?
A: ftp(文件传输协议)是明文传输,不安全;sftp基于SSH协议,所有数据均加密传输,且支持SSH的密钥认证和端口转发,安全性更高,sftp可直接通过SSH登录(无需额外服务),而ftp需单独配置ftp服务,因此推荐使用sftp替代ftp。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/18401.html

(0)
酷番叔酷番叔
上一篇 2025年8月27日 21:10
下一篇 2025年8月27日 21:21

相关推荐

  • 怎么查看电脑系统cmd命令

    Win+R键,输入“cmd”并回车,或在开始

    2025年8月19日
    2500
  • 误删文件如何紧急恢复?

    在Linux系统中将程序制作成可执行的命令,本质是让系统能在任意路径识别并运行该程序,以下是详细操作流程,遵循Linux最佳实践并兼顾安全性:核心原理Linux命令的本质是可执行文件,需满足两个条件:文件具有可执行权限(通过chmod +x实现)文件位于系统PATH环境变量包含的目录中echo $PATH……

    2025年6月15日
    5800
  • 如何编写高效BAT命令?,BAT命令编写常见错误有哪些?,为什么你的BAT脚本总报错?,BAT命令编写必备技巧是什么?

    BAT(批处理)文件是Windows系统中通过命令行自动执行任务的脚本文件,扩展名为.bat或.cmd,它通过调用Windows命令提示符(CMD)执行一系列命令,常用于自动化重复性操作(如文件管理、系统维护、软件部署等),以下是详细编写指南:BAT文件基础语法文件结构用记事本创建文件,保存时选择所有文件类型……

    2025年6月20日
    5700
  • 为何必须优化3D模型?

    减面是为了降低3D模型的复杂度,减少多边形数量,这能显著优化性能(提升渲染速度、降低硬件负担)、减小文件体积(便于存储和传输),并满足特定平台(如游戏、VR/AR)对模型面数的严格限制要求。

    2025年6月18日
    8200
  • Windows命令行如何高效定位系统信息?

    基础文件搜索(CMD命令提示符)dir 命令 – 目录检索 dir C:\目标文件夹\*关键词* /s参数解析:/s:遍历所有子目录:通配符(如*.txt查找文本文件)示例:dir C:\Logs\*error*.log /s 搜索Logs目录下所有含”error”的日志文件findstr 命令 – 内容搜索……

    2025年6月26日
    4700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信