在Unix或Linux操作系统上,scp实用程序(secure copy)与更著名的命令cp类似,但用于在安全加密的网络上在主机之间传输文件和目录。

由于它依赖于ssh进行数据传输,因此它提供了相同的安全性并使用了相同的身份验证ssh。与rcp不同,scp命令将提示您输入用于身份验证的密码(如果需要)。

在本文中,我们将深入研究Linux中文件的安全传输,并学习如何使用scp命令。通过对常用scp开关和选项的详细解释和示例用例,您将了解如何使用此实用程序。

在开始之前了解以下这些很重要

1、由于scp依赖于ssh进行数据传输,因此需要ssh密钥或密码在远程系统(Linux文件传输ssh)上进行身份验证。

2、确认对目标系统有写权限,对源文件有读权限。

3、注意:scp工具使用冒号(:)来区分远程位置和本地位置。

4、当复制两边具有相同位置和名称的文件时,scp将在没有事先警告的情况下覆盖文件。

SCP Linux命令语法

为了开始使用scp命令,您需要了解其基本语法,格式如下:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

选项:表示诸如ssh配置,密码,限制,ssh端口,递归副本等之类的scp选项。

[user@]SRC_HOST:]file1:表示源文件。

[user@]DEST_HOST:]file2 :代表目标文件

与其他任何命令一样,scp工具具有一些用于控制其行为的选项。最常见的是以下几种:

-P:指示要连接到的远程主机的ssh端口。

-p:指定从原始文件保留文件修改,模式和访问时间。

-q:需要禁止显示非错误消息和进度表。

-C:强制scp在将-C标志传递给ssh时压缩数据,以启用对加密安全连接的压缩。

-r:告诉scp命令以递归方式复制整个目录。

-S:用于加密连接的程序名称。由于使用了ssh,因此程序必须了解ssh开关。

-v:详细模式。使scp和ssh可以输出有关其进度的消息。这在调试连接,配置和身份验证问题时很有用。

将本地文件传输到远程目标

在开始使用scp之前,让我们使用cp将文件从一个文件夹复制到另一个文件夹。我们都知道如何使用cp命令来实现这一点:

cp /home/linuxmi/linuxmi.mp3 /home/linuxmi/audio

它将用户linuxmi的主目录中的文件linuxmi.mp3复制到同一用户的主文件夹即linuxmi的audio目录中。

以类似的方式,可以使用的scp命令示例如下所示:

scp /home/linuxmi/linuxmi.mp3 linuxmi@linuxmi.com:/home/linuxmi/audio

使用linuxmi作为登录名将linuxmi.mp3文件上传到服务器linuxmicom到远程目录/home/linuxmi/audio中。请注意,在开始上传之前,scp将提示您输入linuxmi的远程密码。如果未提供远程目录,则文件将被复制到远程用户的主目录。如果不在目标文件夹上提供文件名,则将使scp复制具有原始名称的文件。如果要使用其他名称保存文件,则需要指定新文件名。

将远程文件传输到本地目标

为了下载文件,您可以提及一个远程位置作为源位置。例如 :

scp linuxmi@linuxmi.com:/home/linuxmi/audio/* /home/linuxmi/downloads

它将把linuxmi.com上远程目录/ home/linuxmi/audio中的所有音频文件下载到本地目录/home/linuxmi/downloads中。

注意文件名:

文件名可以由用户和主机组成,以指示文件到该主机的传输或从该主机的传输。为了避免scp处理包含“:”作为主机说明符的文件名,本地文件名可以是绝对文件名,也可以是相对文件名。但是,远程文件名应同时包括用户和主机。

默认端口号:

如果在远程主机上,SSH正在侦听其他端口(即默认端口22以外的端口),则可以使用-P开关指示该端口。

将本地目录传输到远程目标

将目录复制到远程位置,类似于复制文件。您只需要使用-r标志进行递归传输。

要将整个目录复制到远程系统,请运行带有-r选项的命令,例如:

scp -r /home/linuxmi/local_folder linuxmi@linuxmi.com:/home/linuxmi/remote_folder

两个远程系统之间的文件传输

以下命令会将文件/folder/linuxmi.mp3从远程主机linuxmi.com复制到远程主机www.linuxmi.com上的目录/folder。

scp linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

启动此操作后,将要求您提供两个远程目标的密码。

为了通过本地主机(即在其上执行命令的计算机)路由流量,请使用-3开关,如下所示:

scp -3 linuxmi@linuxmi.com:/folder/linuxmi.mp3 linuxmi@www.linuxmi.com:/anotherfolder

发表评论