LINUX如何进行文件传输_Linux scp命令远程复制文件和目录【教程】

发布时间 - 2025-12-27 00:00:00    点击率:
scp是Linux下基于SSH加密的文件传输命令,支持本地/远程互传、目录递归、端口指定、密钥认证、带宽限制、跳转主机及通配过滤等五类操作。

如果您需要在Linux系统之间安全地传输文件或目录,scp命令提供了一种基于SSH协议的加密传输方式。以下是使用scp命令进行远程复制的具体操作步骤:

一、基本语法与参数说明

scp命令通过SSH连接实现文件拷贝,其传输过程自动加密,无需额外配置FTP或HTTP服务。命令结构分为本地到远程、远程到本地、远程到远程三种模式,所有操作均依赖于目标主机的SSH服务运行状态和用户权限。

1、本地复制文件到远程主机:scp /path/to/local/file username@remote_host:/path/to/remote/directory/

2、从远程主机复制文件到本地:scp username@remote_host:/path/to/remote/file /path/to/local/directory/

3、复制整个目录(需添加-r选项):scp -r /path/to/local/dir username@remote_host:/path/to/remote/directory/

4、指定非默认SSH端口(如2222):scp -P 2222 file.txt username@remote_host:/home/user/

二、使用密钥认证免密码传输

当远程主机已配置SSH密钥登录时,可跳过密码输入环节,提升自动化脚本执行效率。该方法要求本地私钥已正确部署且远程主机authorized_keys中包含对应公钥。

1、确认本地私钥路径(默认为~/.ssh/id_rsa):ls -l ~/.ssh/id_rsa

2、使用-i参数显式指定私钥文件:scp -i ~/.ssh/mykey.pem document.pdf user@192.168.1.100:/tmp/

3、若私钥有密码保护,系统将提示输入该私钥的密码而非远程账户密码。

三、限制带宽防止网络拥塞

在共享网络环境中,大文件传输可能影响其他业务流量。scp支持通过-l参数限制传输速率,单位为Kbit/s,便于控制资源占用。

1、以最大500Kbit/s速率传输文件:scp -l 500 largefile.zip user@server:/backup/

2、换算参考:500Kbit/s ≈ 62.5KB/s;1000Kbit/s = 125KB/s。

3、该限速仅作用于当前scp会话,不影响系统其他SSH连接。

四、跳转主机(Bastion Host)方式传输

当目标主机处于内网、无法直接访问时,可通过一台中间跳板机中转完成文件传输。此方式利用SSH的ProxyJump机制构建隧道,避免暴露内网主机至公网。

1、确保本地SSH配置文件(~/.ssh/config)中已定义跳转主机别名:Host jump\n HostName jump.example.com\n User admin

2、定义目标主机并引用跳转主机:Host target\n HostName 10.0.1.5\n User appuser\n ProxyJump jump

3、执行scp时直接使用目标别名:scp data.log target:/var/log/

五、排除特定文件或目录传输

使用rsync替代scp虽更灵活,但若坚持使用scp且需跳过某些文件,可通过shell组合命令实现过滤。该方法依赖本地shell通配与循环逻辑,不改变scp本身行为。

1、进入源目录后,使用for循环逐个传输符合条件的文件:cd /source/dir && for f in *.txt; do scp "$f" user@host:/dest/; done

2、排除名为temp.log的文件:shopt -s extglob; scp !(temp.log) user@host:/dest/

3、启用extglob前需确认bash版本支持,执行shopt -s extglob后方可使用!()语法。


# linux  # app  # 端口  # proxy  # pdf  # 配置文件  # linux系统  # bash  # for  # Directory  # 递归  # 循环  # var  # http  # ssh  # 自动化  # 跳转  # 可通过  # 跳过  # 内网  # 文件传输  # 传输文件  # 一台  # 三种  # 而非 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何基于PHP生成高效IDC网络公司建站源码?  如何快速登录WAP自助建站平台?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  javascript基于原型链的继承及call和apply函数用法分析  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  网站制作报价单模板图片,小松挖机官方网站报价?  如何获取免费开源的自助建站系统源码?  在Oracle关闭情况下如何修改spfile的参数  nginx修改上传文件大小限制的方法  Python文件操作最佳实践_稳定性说明【指导】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  ,交易猫的商品怎么发布到网站上去?  郑州企业网站制作公司,郑州招聘网站有哪些?  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Linux系统命令中screen命令详解  浅谈javascript alert和confirm的美化  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  在线教育网站制作平台,山西立德教育官网?  香港服务器如何优化才能显著提升网站加载速度?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在阿里云虚拟服务器快速搭建网站?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  音乐网站服务器如何优化API响应速度?  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  如何在万网利用已有域名快速建站?  如何挑选优质建站一级代理提升网站排名?  如何在宝塔面板创建新站点?  高防服务器:AI智能防御DDoS攻击与数据安全保障  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  制作公司内部网站有哪些,内网如何建网站?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  开心动漫网站制作软件下载,十分开心动画为何停播?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】