写点什么

Linux 中传输文件如何做到又快又安全?同学,scp 命令了解一下!

作者:wljslmz
  • 2022-11-14
    江苏
  • 本文字数:1300 字

    阅读完需:约 4 分钟

Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!

使用 Linux 时,传输文件是经常做的事情,传输文件有很多种方式、也有很多种协议,最常用的是 rsync、scp 和 sftp,在本文,瑞哥将给大家介绍一下 scp,无论您是支持工程师、系统管理员还是开发人员,都可能需要使用 scp 传输文件。


让我们直接开始!

什么是 scp?

scp,英文全称:Secure Copy Protocol,中文名称:安全复制协议,用于在计算机网络上的主机之间安全地传输文件。


scp 通过使用 SSH(Secure Shell)机制传输文件来确保数据的真实性、加密和机密性。因此,传输中的数据可以免受窥探攻击,客户端可以使用此协议向服务器上传和下载文件和目录,它需要密码或密钥进行身份验证,scp 的默认端口是 TCP 端口 22,这也是 SSH 的默认端口。


scp 协议的好处是您无需启动 FTP 会话或显式登录远程主机进行文件传输。

如何使用 scp?

scp 语法

将文件从本地复制到远程主机:


scp [选项] 源文件 用户名@目的主机:目的路径
复制代码


将文件从从远程主机复制到本地:


scp [选项] 用户名@源主机:源文件路径 目标文件
复制代码


这里的选项有好多,我们执行命令scp --help看看:



这个看起来不全,我们执行命令man scp





这里我选几个常用的解释一下:


  • -C : 启用压缩,在复制时提高传输速度。

  • -c <密码>:密码,默认情况下,SCP 使用“AES-128”加密文件,如果要更改密码,则需要使用 -c 选项后跟密码名称。

  • -i <identity_file>:识别文件或私钥,通常在 Linux 环境中选择基于密钥的身份验证。

  • -l <limit>:限制带宽,可以设置要使用的最大带宽,以 Kbits/s 为单位。

  • -B:在复制时使用批处理模式。

  • -F <ssh_config>:用于在需要使用不同网络连接到 Linux 系统的情况下复制时使用不同的 ssh_config 文件。

  • -P <port>:如果目的主机的 ssh 端口号与默认端口号 22 不同,则需要使用 -P 选项特别注明端口号。

  • -p:用于在复制时保留文件权限、修改和访问时间。

  • -q:将在安静模式下执行 SCP 命令,将关闭进度表,并且不会在 Linux 终端屏幕上显示 ssh 的传输进度、警告或诊断消息。

  • -r:用于递归复制文件和目录。

  • -S <program>:用于指定用于连接的程序。

  • -v: v 代表详细,将在终端屏幕上逐步显示 SCP 命令执行的进度。这对调试很有帮助。

scp 例子

我在远程服务器上新建了一个 wljlsmz 的文件夹,并且在此文件夹中新建了一个文件 hello_wljslmz,文件内容为“hello , i am wljlsmz”:


root@ecs-adf0-0003:/tmp# mkdir  wljslmzroot@ecs-adf0-0003:/tmp# cd wljslmz/root@ecs-adf0-0003:/tmp/wljslmz# lsroot@ecs-adf0-0003:/tmp/wljslmz# touch hello_wljslmzroot@ecs-adf0-0003:/tmp/wljslmz# vim hello_wljslmzroot@ecs-adf0-0003:/tmp/wljslmz# lshello_wljslmzroot@ecs-adf0-0003:/tmp/wljslmz# more hello_wljslmzhello , i am wljlsmz
复制代码



现在我将通过 scp 命令将此文件下载到本地,在本地输入:


scp root@124.70.203.57:/tmp/wljslmz/hello_wljslmz 
复制代码


执行过程:



通过上图显示,已经成功将远程的文件复制到本地了,是不是很简单?

总结

scp 是个非常重要且基础的命令,本文介绍了 scp 的基础知识、语法、参数选项以及例子,希望本文对您认识和学习 scp 有所帮助,如果您有任何问题,欢迎在下方评论区与我讨论,最好感谢您的阅读,您的点赞和转发就是我不断创作的动力!

发布于: 刚刚阅读数: 6
用户头像

wljslmz

关注

极致主义者,追求技术的路上,勇往直前! 2021-05-24 加入

公众号:网络技术联盟站 👍InfoQ签约作者 👍阿里云社区签约作者 👍华为云 云享专家 👍BOSS直聘 创作王者 👍腾讯课堂创作领航员 博客+论坛:https://www.wljslmz.cn 工程师导航:https://www.wljslmz.com

评论

发布
暂无评论
Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!_Linux_wljslmz_InfoQ写作社区