当前位置: 首页 > news >正文

Linux 【05- scp命令超详细教程】

Linux scp 命令超详细完整教程

一、scp 基础介绍

1. 作用

scp= secure copy,基于 SSH 加密传输文件,跨服务器复制文件/文件夹,传输全程加密,比 rcp、ftp 安全。

2. 前置条件

  1. 两台机器都安装 openssh-client / openssh-server
  2. 目标机器 SSH 端口开放(默认22)、防火墙放行
  3. 拥有对方服务器账号密码/免密密钥

3. 通用语法

# 本地 → 远程scp[参数]本地文件/目录 用户名@远程IP:远程路径# 远程 → 本地scp[参数]用户名@远程IP:远程文件/目录 本地路径# 远程A → 远程B(中转传输)scp[参数]用户A@IPA:文件 用户B@IPB:路径

二、常用核心参数大全

参数作用说明
-r递归复制文件夹(复制目录必须加)
-P 端口指定SSH端口(大写P!默认22可省略)
-p保留文件原有权限、修改时间
-C传输时开启压缩,大文件提速
-v打印详细调试日志,排错用
-l 数值限制传输带宽,单位Kbit/s
-o ssh选项传递ssh参数,如免密忽略主机校验
-i 私钥文件使用指定私钥登录(密钥认证)

三、实战示例(最常用场景)

场景1:本地单个文件上传到远程

# 把本地 /root/test.txt 传到 192.168.1.100 的 /home/ubuntu/scp/root/test.txt ubuntu@192.168.1.100:/home/ubuntu/# 上传并重命名scptest.txt ubuntu@192.168.1.100:/home/ubuntu/new_test.txt

场景2:本地文件夹上传(必须 -r)

# 本地 data 文件夹完整上传远程scp-r/root/data ubuntu@192.168.1.100:/home/ubuntu/

场景3:远程文件下载到本地

# 拉取远程文件到当前本地目录scpubuntu@192.168.1.100:/home/ubuntu/log.txt ./# 拉取远程文件夹到本地 /tmpscp-rubuntu@192.168.1.100:/home/ubuntu/logs /tmp

场景4:SSH非22端口传输(大写 -P)

服务器SSH改成 2222 端口,上传文件:

# 上传scp-P2222test.txt ubuntu@192.168.1.100:/home/ubuntu/# 下载scp-P2222ubuntu@192.168.1.100:/home/ubuntu/log.txt ./# 传文件夹scp-r-P2222/root/file ubuntu@192.168.1.100:/data

注意:小写-p是保留权限,大写-P才是端口,极易踩坑!

场景5:使用私钥文件登录(免密密钥)

scp-i/root/.ssh/id_rsa test.txt ubuntu@192.168.1.100:/home/ubuntu/

场景6:传输保留文件属性(权限、时间)

scp-rp/root/package ubuntu@192.168.1.100:/opt/

场景7:大文件压缩传输提速-C

scp-Cr本地大目录 root@10.0.0.5:/data/backup

场景8:限制传输带宽(限速)

限制带宽 1000Kbit/s:

scp-l1000big.iso root@192.168.1.100:/mnt

场景9:远程A直接传到远程B(本机中转)

本机只是中转,文件从服务器A直接流向B:

scproot@10.0.0.1:/data/file.tar root@10.0.0.2:/backup

场景10:调试排错,打印详细日志-v

连接超时、认证失败时用,看完整SSH握手过程:

scp-vtest.txt ubuntu@192.168.1.100:/tmp

四、高级进阶用法

1. 一次性传输多个本地文件

scpfile1.txt file2.tar ubuntu@192.168.1.100:/home/ubuntu/

2. 忽略主机密钥校验(自动化脚本专用)

通过-o传递ssh参数,避免首次连接提示yes/no:

scp-oStrictHostKeyChecking=no-oUserKnownHostsFile=/dev/null test.txt ubuntu@192.168.1.100:/tmp

3. 后台静默传输(大文件不占终端)

配合nohup后台跑,关闭窗口不中断:

nohupscp-rbig_folder root@192.168.1.100:/mnt&# 查看日志tail-fnohup.out

五、免密传输(推荐,不用输密码)

步骤1:生成本机密钥

ssh-keygen-trsa# 一路回车,不设置密钥密码

步骤2:推送公钥到远程服务器

ssh-copy-id-p2222ubuntu@192.168.1.100

步骤3:之后scp无需输入密码

scptest.txt ubuntu@192.168.1.100:/home/ubuntu

六、常见报错与解决方案

1.scp: Not a directory

原因:目标路径不存在 / 目标写成文件路径
解决:先登录远程mkdir创建文件夹

2.Permission denied

  • 远程目录无写入权限:换/tmp测试,或 chmod 放开权限
  • 账号密码错误 / 私钥不匹配:核对账号、私钥文件

3.Connection refused

  • SSH端口错误:确认端口,加-P
  • 远程sshd未启动 / 防火墙拦截
# 远程查看ssh状态systemctl status sshd

4.lost connection传输中断

  • 网络波动:加-C压缩、分段传输
  • 服务器超时配置:修改/etc/ssh/sshd_config延长超时

5. 复制文件夹漏掉-r

报错regular file,目录传输必须带-r

七、scp 优缺点 & 替代工具

scp 缺点

  1. 不支持断点续传,断网从头传
  2. 海量小文件传输效率低

替代推荐(生产常用)

  1. rsync:支持断点续传、增量同步、差量传输(优先推荐)
    rsync-avz-P本地目录 user@ip:/远程路径
  2. sftp:交互式批量管理文件
  3. rclone:云服务器/对象存储高速传输

八、最简速查模板

# 上传文件夹、自定义端口、保留权限、压缩scp-Crp-P2222/本地目录 user@IP:/远程目录# 下载文件夹、私钥登录scp-Cr-i/root/.ssh/id_rsa user@IP:/远程目录 /本地保存路径
http://www.jsqmd.com/news/1108480/

相关文章:

  • Agent Runtime 层重构:会话即事件日志的工程实践与生产落地
  • 遇阻回弹+保温防尘:工业厂房大门优选提升门核心优势解析
  • KMX63与PIC18LF47K40在HMI手势交互中的应用
  • paperxie 学术写作实操指南|对照平台原生界面拆解论文创作全配套功能
  • 分享我的开源项目: 基于Go开发的微服务即时通讯与社交平台
  • SEO 进阶:如何利用 sitemap 在线生成器提升 30% 索引率
  • 三菱Q系列以太网通讯架构赋能城市排水管网智能调度管理系统
  • 收藏!AI时代如何选择值得加入的公司?毕业生必看!
  • Sunshine游戏串流主机:打造你的个人游戏云服务器终极指南
  • AI 图片生成技术解析:扩散模型、多模态与图像编辑的协同机制
  • GetQzonehistory:找回那些被遗忘的QQ空间记忆,一键备份你的数字青春
  • Sunshine游戏串流终极指南:三步打造你的私人云游戏服务器
  • WinAsar:Windows上最轻量的Electron asar文件管理器
  • Dify 1.15 人工介入功能详解:构建可控AI工作流
  • 如何在单台电脑上实现完美分屏游戏:Nucleus Co-Op完整指南
  • STM32F207ZG与A5000安全芯片的物联网安全连接方案
  • awesome-pentest:一份渗透测试资源清单
  • 7月必看!今年最值得关注的科技大事件
  • 服装店老板的痛点,这套收银系统一次解决
  • VMware虚拟机3D加速配置全攻略:5步开启硬件加速,解决黑屏/卡顿/渲染失败99%的疑难杂症
  • 深度掌控AMD Ryzen处理器:SMUDebugTool硬件级调试实战指南
  • 三步构建你的跨平台游戏云:绕过硬件限制的智能串流方案
  • GLM-5.1 与 GLM-5.2关键区别
  • 三月七小助手:你的星穹铁道终极自动化伴侣完整指南
  • Web自动化测试全流程实战:从Selenium到CI/CD集成
  • 提升门遇阻回弹功能实现原理
  • 勒索软件应急响应实战手册:从攻击原理到恢复策略
  • 【生产环境零容忍】:VMware虚拟机固定IP的7个致命配置错误,第4个导致集群网络中断超47小时
  • 空洞骑士模组管理终极方案:如何用Scarab模组管理器轻松管理100+游戏模组
  • 2026年AI大模型技术深度解析:小白也能轻松掌握的5大核心技术(收藏版)