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

相关推荐

  • 国内云与云计算究竟有何作用和用途?

    国内云提供弹性算力与资源,助力企业降本增效,加速数字化转型,保障数据合规。

    2026年2月20日
    7000
  • Linux中at命令为何不运行?

    在Linux系统中,at命令是一个非常实用的工具,它允许用户在指定的时间执行特定的命令或脚本,有时用户可能会遇到at命令无法正常运行的问题,这可能会影响到定时任务的执行,本文将详细探讨at命令在Linux中不运行的常见原因及其解决方法,帮助用户快速定位并解决问题,at命令的基本使用at命令的基本语法非常简单,用……

    2025年12月14日
    12900
  • 如何用命令行快速设置壁纸?

    Windows 系统(PowerShell 命令)步骤:准备图片路径将图片保存在固定目录(如 C:\wallpaper.jpg),路径不能含中文或空格(避免转义错误),以管理员身份启动 PowerShell按 Win + X → 选择 “Windows PowerShell (管理员)”,执行设置命令Set-I……

    2025年7月30日
    16800
  • db2未初始化命令怎么回事

    2未初始化命令可能是由于数据库实例未启动、环境变量未设置或权限不足等原因导致的

    2025年8月17日
    15700
  • awrrptsql巡检如何高效分析数据库性能?

    在数据库管理中,定期巡检是保障系统稳定运行的关键环节,通过AWRRPTSQL工具生成的Oracle数据库性能报告,管理员能够全面掌握数据库的运行状态,及时发现潜在问题并优化性能,本文将详细介绍AWRRPTSQL数据库巡检的核心内容、分析方法及实践建议,AWRRPTSQL概述与数据采集AWRRPTSQL是Orac……

    2025年11月29日
    10700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信