SCP 命令在 Linux/Unix 中的用法及示例2024 年 10 月 9 日 | 阅读 11 分钟 当我们处理任何具有存储容量的电子设备或计算机时,我们可能会通过多种方式共享或分发文件和信息。最基本共享的一些文件包括音频文件、PDF、视频、图像或其他格式的 Word 文档。 正在分发的信息可能是机密的或私有的,这意味着当我们谈论设备(如 appshare、xender,甚至有时是蓝牙使用)时,它仅供特定人群或特定个人使用。现在,当我们谈论系统时,情况也一样;我们有提供相同功能的软件和网站。 当我们谈论在 Linux 等操作系统中共享数据时,有很多命令可供选择来分发信息。另一方面,scp 命令使我们能够轻松安全地共享数据和文件。在当今的市场中,如果您是一名系统管理员,拥有 Linux 知识非常重要且有用。作为系统管理员,数据分发将是我们日常工作的一部分,我们需要分发的信息是安全的,我们可以使用 scp 命令来实现这一点。 SCP 命令简介SCP 代表 安全复制协议。在 Linux 系统中,SCP 命令可以在多个服务器之间安全地复制文件。它允许在远程主机和本地主机之间或两个远程主机之间安全地传输文件。它应用与 SSH(安全外壳)协议相同的安全性和身份验证。SCP 命令以其预装可用性、安全性和简洁性而闻名。 安全复制协议是一个命令行实用程序,允许用户在两个不同位置(通常是 Linux 或 Unix 系统之间)安全地复制目录和文件。该协议保证文件传输是加密的,以防止任何有恶意意图的人窃取敏感信息。换句话说,我们可以说 SCP 命令是 copy (cp) 命令的替代品。 当然,这意味着有多个机器的参与才能使过程得以进行,因为我们正在讨论文件传输。SCP 是以相对较高的安全级别传输文件的方式。它允许用户在远程系统和本地服务器之间复制文件,而将原始文件保留在原处。scp 命令都可以下载和上传文件。此外,它允许用户复制整个文件目录。它甚至可以在多个远程系统之间复制文件。 我们可以在以下情况下使用 scp 命令:
在这里,讨论在使用 scp 命令之前我们需要准备一些东西会很有益。
scp 命令既指 scp Linux 实用程序,也指该协议。它取代了实际的 rcp 命令,而 rcp 命令不再被认为是安全的。它没有在 RFC 中描述,但几乎所有的 Linux 发行版都有定义如何使用的“man”页。例如,Ubuntu 包含一个 scp man 页。 在发送文件之前,客户端会与服务器建立 scp 连接。scp 命令借助 TCP(传输控制协议)的 22 端口进行连接。然后,远程服务器会调用 scp 进程。scp 命令可以在以下两种模式之一中实现:
作为基础层,scp 命令使用 SSH(安全外壳)协议。SSH 验证客户端并加密信息以进行传输。此外,scp 除了加密文件内容外,还会加密每个密码。由于文件已加密,因此无法通过中间人攻击访问它们。 此外,scp 还支持远程到远程模式。Scp 在源远程主机和目标远程主机之间建立了直接连接。它允许数据在两个不同的节点之间传递,而无需通过本地主机。在大多数最新版本中,数据默认会从原始节点路由。它更安全,但效率也较低。 scp 命令是为效率和速度而开发的。它被认为是一种简单、可靠且稳健的复制文件的方法。然而,它的性能非常普遍,一些安全分析师批评它有限且不灵活。例如,scp 命令无法正确地与集合 shell 配置文件交互。此外,SSH 配置文件消息可能导致连接失败和错误。scp 命令不允许用户重命名、列出或删除文件。一些专家建议使用 rsync 和 SFTP。 重要提示:没有任何单一协议可以完全被认为是完全安全的。在处理高度敏感数据之前,请咨询安全专家。 开始之前 对于数据传输,SCP 命令依赖于 ssh,因此需要密码或 ssh 密钥才能在远程系统上进行身份验证。在目标系统和源文件上,我们必须分别具有至少写权限和读权限才能复制文件。冒号是 SCP 命令区分远程和本地位置的方式。在复制具有相同位置和名称的文件时,我们需要小心,因为 SCP 命令会覆盖这些文件而不会发出任何警告。建议在发送大文件时,在 tmux 或 screen 会话中执行 SCP 命令。 SFTP 和 SCP 之间的区别SFTP(SSH 文件传输协议)和 scp 命令是用于在不同系统之间安全复制文件的两种不同方法。这两种协议都有其优点。但是,在几乎所有情况下都可以选择任何一种。以下是这两种系统之间的一些区别和相似之处。
重要提示: 源系统和目标系统可能需要 SSH 密钥进行验证。如果 scp 命令显示身份验证错误,请为源创建 SSH 密钥并将其发送到目标服务器。然后,尝试再次运行命令。源服务器和本地主机不需要 SSH 密钥(共享),可以使用密码进行验证。 SCP 用例scp 命令是一个更简单的复制实用程序。它运行良好,并且能够快速传输文件。然而,它不提供多种选项,也不以交互模式运行。它也不提供管理工具,如删除文件和列出远程目录的功能。对于 scp 命令,主要用例是一次性传输,此时速度至关重要。对于更复杂的任务,它不太有用。在这种情况下,我们可以尝试 SFTP。 Linux 实用程序 scp 是经典应用程序(如 FTP)的更安全替代品。可以在远程服务器和本地主机之间或在两个不同的远程服务器之间复制多个文件。SSH 被 scp 协议用作加密和身份验证的基础层。SFTP 和 scp 协议是服务器之间文件传输的两种不同技术。scp 协议更简单、更快,而 SFTP 是一个功能更全面的协议,提供更多的管理选项和交互模式。 在 Linux 系统上,我们可以使用 scp 发送文件。scp 命令更易于使用,尽管它包含许多选项。首先应定义源文件的信息,然后定义目标目录的信息。应添加主机详细信息和用户名。可以同时发送两个或多个文件,并且可以递归复制目录。 SCP 命令选项我们可以向任何 SCP 命令添加几个选项来加速和自定义过程。选项作为 scp 之后的元素包含。所有选项都有一个单字符的短格式和一个描述性的长格式。
SCP 命令语法Linux 实用程序 scp 在 Linux 系统上基于 SCP 工作。通常,它是 SSH 包的一部分,并且几乎所有发行版都已安装。这种语法不像乍一看那么复杂。经典的 scp 命令包含以下组件:
在使用 SCP 命令之前,让我们从常用语法开始。 SCP 命令的语法形式如下: 其中,
本地文件必须使用相对或绝对路径指定,而远程文件名必须包含主机和用户规范。 SCP 示例使用 SCP 在两个不同的系统之间复制目录和文件使用 SCP 命令复制本地文件 我们需要执行以下命令将任何文件从本地系统复制到远程系统: 其中 **empty.txt** 是我们要复制的文件名,**remote_username** 是远程服务器用户,**10.10.0.2** 是服务器的 IP 地址。**/remote/directory** 是我们要将文件复制到的目录路径。如果我们不指定任何远程目录,我们的文件将复制到远程用户的家目录。届时会要求我们输入密码,复制过程便开始。
使用 scp 命令将远程文件复制到本地系统 我们将远程位置作为源,本地位置作为目标,将任何远程文件复制到本地系统。**例如,** 要从 IP 地址为 **10.10.0.2** 的任何远程服务器复制名为 **empty.txt** 的文件,请执行以下命令: 如果我们没有在远程机器上设置无密码 SSH 登录,我们将被要求输入我们的用户密码。 使用 scp 命令在两个不同的远程系统之间复制任何文件 与 **rsync** 不同,在使用 scp 命令时,我们不需要登录到任何服务器即可将文件从一个远程系统发送到另一个远程系统。以下命令会将文件 **/empties/empty.txt** 从 **/remote1.com** 远程主机复制到 **/remote2.com** 远程主机上的 **/empties** 目录。 届时会要求我们输入远程帐户的密码。我们的数据将直接在这些远程主机之间传输。 我们将使用 -3 选项来路由通过其执行命令的机器的流量。 下一主题什么是 Linux 内核 |
我们请求您订阅我们的新闻通讯以获取最新更新。