每当你使用计算机或任何具有存储容量的电子设备工作时,你可能需要以各种方式分发或共享信息和文件。

这些可能是声音文件、图像、注释或任意数量的文本配置文件。

你分享的信息通常是私密的或机密的,你不会希望它落入坏人之手。这意味着保护信息至关重要。

在 Linux 等操作系统中共享数据时,你可以选择多个命令来共享信息。但今天我们将专注于 SCP 命令。它让你可以安全轻松地共享文件和数据。

鉴于 Linux 就业市场的持续增长,如果你要在该领域寻找工作,那么拥有安全传输数据等基本技能至关重要。

让我们先了解什么是 SCP,然后我们将学习一些可用于传输文件的命令。

什么是 Linux SCP 命令

SCP 代表安全复制协议,它对 Linux 系统之间的文件传输进行加密。 SCP 是一个命令行工具,可用于跨 Linux 系统安全地复制或传输文件和目录。

例如,如果你想将文件复制到 Linux 系统,并且你担心网络上的窥探者可能会访问你的文件,则可以轻松使用 SCP 命令。

SCP 在 SSH(安全外壳)连接上使用加密,这确保即使数据被截获,它仍然受到保护。

SCP 语法

每当你尝试学习新命令时,你都需要了解基本语法。这将帮助你了解它们的排列方式以及如何正确编写它们。

scp [OPTIONS] [[user@]src_host:]file [[user@]dest_host:]file

根据文件的来源,源可以是客户端或服务器。

使用 SCP,你可以在复制文件时使用一些选项。这些功能根据它们的使用方式代表不同的权限。

最常见的包括:

  • P(大写)- 指定要连接到远程主机上的端口
  • p(小写)- 保留用于修改和访问的时间戳
  • r - 递归复制整个目录
  • q - 安静模式,不显示进度或消息
  • C - 在传输过程中压缩数据

使用 SCP 命令,你可以:

  • 在同一台机器内复制文件
  • 将文件从本地主机复制到远程主机,反之亦然
  • 在两个不同的远程服务器之间复制文件

在你使用任何这些 SCP 命令之前,需要记住一些事项。

首先,确保你在客户端和服务器计算机上都安装了 SSH。

其次,你需要知道远程系统的用户名和密码。系统会提示你输入远程主机的密码,只有在你输入正确的远程主机密码后,文件传输才会开始。

让我们更详细地看一下其中的一些 SCP 命令。

常用的 Linux SCP 命令

使用 SCP 将文件从本地服务器复制到远程服务器

假设你使用 SCP 通过 SSH 将本地文件发送到远程系统。

要将文件从本地计算机复制到远程主机,请将文件路径指定为源路径以及远程主机中需要复制文件的路径。

通常,如果你位于 /home/user 目录中,则不需要指定文件的位置。如果要将 test.txt 文件复制到服务器,可以输入以下内容:

scp test.txt userbravo@destination:/location2

要将所有 .txt 文件复制到 userbravo 的主目录中,请输入以下内容:

scp *.txt userbravo@destination_host:/~/

如果你只指定目标目录,SCP 将保留文件名原样。

要更改文件名,请在目标中定义一个新文件名:

scp test.txt userbravo@destination_host:/user/home/useralphatest.txt

在本例中,我们从本地机器复制了 test.txt 文件,然后将其作为 useralphatest.txt 保存在目标系统的用户目录中。

使用 SCP 将文件从远程复制到本地

以这个场景为例,你想从当前登录的系统的远程 Linux 系统复制文件,你需要做的就是调用 SCP,后跟远程用户名、@、IP 地址或主机、冒号和文件路径。

如果未指定路径,则默认路径为远程用户的主目录。然后,定义文件将在本地存储的本地路径。

将文件从远程复制到本地设备的简单 scp 示例是:

scp <Username>@<IPorHost>:<PathToFile>   <LocalFileLocation>

就我而言,我想从远程设备复制一个名为 linuxcheatsheet 的文件,地址为 192.168.1.100。

linuxcheatsheet 文件存储在 kali 用户的主目录中,我将对用户进行身份验证。因此,在冒号之后,我不需要指定路径,因为它是默认路径,即主目录,我只需键入文件名(“linuxcheatsheet”)。然后,我通过键入一个点将当前目录指定为存储文件的本地位置。

将文件从一个远程主机复制到另一个

你看,SCP 的美妙之处在于它不限制你只能在本地机器之间进行连接。你也可以在远程服务器之间进行连接。

现在,要将文件从一个远程系统复制到另一个系统,请使用以下命令:

scp user1@host1.com:/files/test.txt user2@user2.com:/files

这会将 test.txt 文件从 host1.com 上的 /files 目录复制到 /host2.com 上的 /files 目录。

使用 SCP 复制多个文件

要将多个文件从本地机器复制到另一台主机,你需要做的就是指定文件名作为源路径。

scp file1.txt file2.txt user@<ip_address_of_user>:/home/user/Desktop

帮助你使用 SCP 的快速提示

SCP 命令依赖 SSH 进行安全数据传输,这意味着它需要密码才能在远程系统上进行身份验证。

为了能够复制文件,你必须对源文件具有读取权限,并在目标系统上具有写入权限。

复制具有相同名称和位置的文件时要小心,因为 SCP 会在没有警告你的情况下覆盖它们。

为了能够区分本地和远程位置,请使用 “:”。

总结

无论你是支持工程师、系统管理员,还是像我这样正在使用 Linux 或想学习 Linux 的成长中的开发人员,你都可能在某个时候不得不传输文件,那么这些简单的 SCP 命令会派上用场。

在本文中,我们介绍了一些你想要使用 SCP 的最常见场景,希望你已经学到了一些新东西。

编码愉快 ❤

原文:SCP Linux Command – How to SSH File Transfer from Remote to Local,作者:Hillary Nyakundi