Linux scp如何快速传文件?

scp基础语法

scp [选项] 源文件路径 目标文件路径
  • 常用选项
    • -P:指定远程SSH端口(默认为22)
    • -r:递归复制整个目录
    • -C:启用压缩传输
    • -i:指定私钥文件(用于密钥认证)

核心操作场景

本地文件 → 远程服务器

scp /本地/文件.txt 用户名@远程IP:/远程/目录/

示例
将本地的report.pdf复制到远程服务器168.1.100/home/user/docs/目录:

scp ~/documents/report.pdf user@192.168.1.100:/home/user/docs/

远程服务器 → 本地

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

示例
下载远程服务器0.113.5上的/var/log/app.log到本地当前目录:

scp admin@203.0.113.5:/var/log/app.log ./

远程服务器之间传输

scp 用户1@源IP:/文件路径 用户2@目标IP:/目标路径/

示例
serverA/data/backup.zip复制到serverB/backups/

scp john@192.168.1.10:/data/backup.zip mary@192.168.1.20:/backups/

递归复制目录(含子文件)

scp -r /本地/目录/ 用户名@远程IP:/目标路径/

示例
上传整个project/目录到远程:

scp -r ~/project/ dev@example.com:/opt/development/

高级配置技巧

  1. 指定非默认SSH端口
    若远程SSH端口为2222

    scp -P 2222 file.txt user@host:/path/
  2. 使用密钥认证免密码
    通过-i指定私钥:

    scp -i ~/.ssh/id_rsa_private file.txt user@host:/path/
  3. 启用传输压缩(大文件推荐)

    scp -C largefile.iso user@host:/backups/

注意事项

  1. 权限问题

    • 确保目标路径有写入权限(远程用户需具备/目标路径/的写权限)。
    • 本地文件需有读权限。
  2. 安全性

    • 所有传输均通过SSH加密,避免使用明文传输工具(如FTP)。
    • 推荐使用密钥登录而非密码(通过ssh-keygen生成密钥对)。
  3. 路径格式

    • 远程路径格式:用户名@主机:路径
    • 特殊字符(如空格)需用引号包裹:"file name.txt"

常见问题解决

  • 连接超时
    检查防火墙是否放行SSH端口,或确认远程IP是否正确:

    ssh user@host  # 先测试SSH连通性
  • Permission denied

    1. 确认远程目录权限:chmod 755 /目标路径
    2. 检查密钥权限:chmod 600 ~/.ssh/id_rsa
  • 命令无响应
    使用-v参数查看详细日志:

    scp -v file.txt user@host:/path/

scp是Linux系统管理员和开发者的核心工具之一,兼顾安全性与效率,通过掌握基础命令与场景化操作,可轻松实现跨服务器文件管理,对于更复杂的传输任务(如增量同步),可进阶学习rsync命令,但scp在简单场景中仍是首选方案。

引用说明基于Linux man-pages的scp文档(v8.4)及OpenSSH官方实践指南,确保信息的准确性与安全性,操作示例已在Ubuntu 22.04/CentOS 7环境中验证。

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

(0)
酷番叔酷番叔
上一篇 2025年8月8日 08:45
下一篇 2025年8月8日 09:01

相关推荐

  • Linux环境下Java如何连接Oracle数据库?

    在Linux环境下,Java程序连接Oracle数据库是企业级开发中的常见需求,需完成环境准备、驱动配置、代码编写及问题排查等步骤,下面详细介绍具体流程,环境准备首先需确保Linux系统、Java开发环境及Oracle数据库正常运行,推荐使用CentOS 7+或Ubuntu 18.04+系统,安装JDK 1.8……

    2025年9月30日
    8600
  • ISO镜像如何安装Linux系统?

    使用ISO文件安装Linux系统是常见的部署方式,整个过程可分为准备工作、启动盘制作、安装引导、系统配置等步骤,下面以主流发行版(如Ubuntu、CentOS等)为例,详细介绍具体操作流程,安装前的准备工作下载Linux ISO镜像访问目标发行版官网(如Ubuntu官网、CentOS官网),根据需求选择版本(如……

    2025年9月23日
    9700
  • 如何检查80端口被占用?

    在Linux系统中,端口被占用可能导致服务启动失败或网络连接异常,以下是释放端口的专业方法,操作前请确保您有sudo权限:第一步:定位占用端口的进程方法1:使用 lsof 命令sudo lsof -i :端口号sudo lsof -i :80输出示例:COMMAND PID USER FD TYPE DEVIC……

    2025年7月24日
    12200
  • 如何在Linux下运行Dev-C++开发工具?

    在Linux操作系统中直接运行Windows版的Dev-C++是不可能的,因为Dev-C++是专为Windows平台设计的C/C++集成开发环境(IDE),依赖于Windows的系统库和运行时环境,用户可以通过兼容层、替代IDE或命令行工具等方式,在Linux下实现类似Dev-C++的C/C++开发体验,以下是……

    2025年10月3日
    10500
  • 在Linux系统里,解压zip压缩文件的具体操作步骤有哪些?

    在Linux系统中,解压zip文件最常用的工具是unzip命令,它功能强大且支持多种选项,能满足不同场景下的解压需求,以下是详细的操作方法和注意事项,安装unzip工具部分Linux发行版默认未安装unzip,需先手动安装,以常见系统为例:Ubuntu/Debian:sudo apt update &amp……

    2025年9月19日
    11400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信