From 33badf157254835c0f18ef4051f8eb9b7eed6ac5 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Sat, 24 Dec 2022 15:23:52 +0800 Subject: [PATCH] RP @MjSeven https://linux.cn/article-15377-1.html --- ... How To Securely Transfer Files With SCP In Linux.md | 149 ++++++++---------- 1 file changed, 70 insertions(+), 79 deletions(-) rename {translated/tech => published}/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md (69%) diff --git a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md similarity index 69% rename from translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md rename to published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md index b450a31ef7..ca5f6ac817 100644 --- a/translated/tech/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md +++ b/published/20221103.6 ⭐️⭐️⭐️ How To Securely Transfer Files With SCP In Linux.md @@ -3,18 +3,20 @@ [#]: author: "sk https://ostechnix.com/author/sk/" [#]: collector: "lkxed" [#]: translator: "MjSeven" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15377-1.html" 如何在 Linux 中使用 SCP 安全地传输文件 ====== +![][0] + 在网络上文件传输可以通过各种不同的方式和协议来完成。**远程复制文件**最常用的协议是 **Rsync**、**SCP** 和 **SFTP**。在本文中,我们将了解**什么是 SCP** 以及如何在 Linux 和类 Unix 操作系统中**使用 SCP 在本地和远程计算机之间安全地传输文件**。 -### 什么是 SCP? +### 什么是 SCP? -SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。 +SCP,代表 安全复制Secure Copy,它是一个命令行程序,在 Linux 和类 Unix 操作系统中以安全的方式在本地和远程系统之间,或在两个远程系统之间复制文件和目录。 使用 `scp` 命令,你可以安全地复制文件或目录: @@ -22,7 +24,7 @@ SCP,代表**安全复制**,它是一个命令行程序,在 Linux 和类 Un - 从远程系统到本地 - 在两个远程系统之间 -使用 scp 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,犯罪者也无法获得任何有意义的数据。 +使用 `scp` 命令传输数据时,文件和目录都是加密的。因此,即使网络被破坏,作恶者也无法获得任何有意义的数据。 SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文件。几乎所有现代 Linux 和 Unix 发行版都预装了 OpenSSH,所以不必费心安装它。 @@ -30,7 +32,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 根据 openSSH 开发人员的**官方公告**: -> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 sftp 和 rsync 来代替。 +> **scp 协议已经过时了**,它不灵活且不易修复。我们建议使用更现代的协议,如 `sftp` 和 `rsync` 来代替。 > > 参考 - [https://lists.mindrot.org/pipermail/openssh-unix-dev/2019-March/037672.html][1] @@ -38,8 +40,8 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 另外,SCP 的工作原理与 `cp` 命令完全相同,而 `rsync` 则会判断源目录是否有**结尾斜杠**而出现不同的行为。看一看下面的命令: -- `rsync source destination/` - 将 source 目录复制到 destination 文件夹内。 -- `rsync source/ destination/` - 将 source 目录的内容复制到 destination 文件夹中。 +- `rsync source destination/` - 将 `source` 目录复制到 `destination` 文件夹内。 +- `rsync source/ destination/` - 将 `source` 目录的内容复制到 `destination` 文件夹中。 所以,你必须反复检查是否在路径中添加了斜杠。 @@ -49,7 +51,7 @@ SCP 是 openSSH 程序的一个组件,它使用 SSH 协议安全地传输文 SCP 的通用语法如下: -```bash +``` scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file] [-J destination] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target ``` @@ -91,9 +93,9 @@ scp -r User@RemoteHost:RemoteDirectoryPath DestinationDirectory scp User@RemoteHost1:RemoteFile1 User@RemoteHost2:RemotePath ``` -注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数传递运行 scp 命令的系统的流量。 +注意,当你在两个远程系统之间复制文件时,流量不会通过本地系统。操作直接在两个远程系统之间进行。但是,你可以使用 `-3` 参数让流量经过你运行 `scp` 命令的系统。 -本地将目录从一个远程系统复制到另一个远程系统: +从你的本地系统将一个远程系统的目录复制到另一个远程系统: ``` scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath @@ -103,17 +105,17 @@ scp -r User@RemoteHost1:RemoteDirectory User@RemoteHost2:DestinationPath SCP 命令最常用的参数有: -- **`-C`** : 启用压缩。C 代表压缩。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。 -- **`-c `** : c 代表加密。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。 -- **`-i `** : i 代表身份文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 -i 参数指定身份文件或私钥。 -- **`-l limit`** : l 代表极限带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 **`Kbit/s`**。 -- **`-F `** : 有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件。 -- **`-P port`** - P 代表端口。注意,这是大写的 P。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。 -- **`-p`** : 如果希望保留原始文件的修改时间、访问时间和模式,你需要使用 -p 参数。注意是小写 p。 -- **`-r`** : 递归复制整个目录。 -- **`-B`** : B 代表批处理模式。它用于在传输文件时选择批处理模式。可以防止询问密码。 -- **`-S program`** : 用于加密连接的程序名称。 -- **`-v`** : v 代表详细。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。 +- `-C`:启用压缩。`C` 代表 压缩Compression。使用此参数时,数据传输速度会更快,因为数据是压缩的。SCP 将自动在源系统上压缩,并在目标系统上解压缩。 +- `-c `:`c` 代表 加密Cipher。默认情况下,SCP 使用 **AES-128** 加密方法对数据进行加密。你可以使用 `-c` 参数更改加密方法。 +- `-i `:`i` 代表 身份Identity 文件或私钥。如你所知,SSH 中使用基于密码或密钥的身份验证。如果希望在传输文件时使用基于密钥的身份验证,可以使用 `-i` 参数指定身份文件或私钥。 +- `-l limit`:`l` 代表 限制Limit 带宽。通过此参数,可以设置传输数据的最大带宽。它的单位是 `Kbit/s`。 +- `-F `:有时你可能需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器,这种情况下,你可以使用 `-F` 参数使用不同的 `ssh_config` 文件File。 +- `-P port`:`P` 代表 端口Port。注意,这是大写的 `P`。默认情况下,SSH 使用端口 22。但出于安全原因,你可能已经更改了目标主机中的端口号。这种情况下,你应该使用 `-P` 参数显示指定新端口号。 +- `-p`:如果希望 保留Preserve 原始文件的修改时间、访问时间和模式,你需要使用 `-p` 参数。注意是小写 `p`。 +- `-r`:递归Recursively 复制整个目录。 +- `-B`:`B` 代表 批处理Batch 模式。它用于在传输文件时选择批处理模式。可以防止询问密码。 +- `-S program`:用于加密连接的 程序Program 名称。 +- `-v`:`v` 代表 详细Verbose。当使用 `-v` 参数时,命令将会在终端屏幕上打印进度。你会看到文件传输时到底发生了什么。它在调试连接、身份验证和配置问题时非常有用。 SCP 有很多参数,你可以查看它的手册页来了解其他参数。让我们看一些**有用的 scp 命令示例**。 @@ -122,14 +124,14 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让 - `scp` 命令依赖于 `ssh` 进行安全的文件传输。因此,你必须有一个 **ssh 密钥**或**密码**才能向远程系统进行身份验证。 - 为了能传输文件,你必须对**源文件有读权限**,对**目标位置有写权限**。 - `scp` 命令在写入前不会检查目标位置。目标位置中具有相同名称的任何文件都将被**覆盖而不通知**。 -- 为了能够区分本地和远程位置,使用**冒号**(`:`)。 +- 为了能够区分本地和远程位置,使用**冒号**(`:`)。 - 传输大文件时,建议在 **[Screen][3]** 或 **[Tmux][4]** 会话内启动任务。 ### 在 Linux 中使用 SCP 传输文件 正如我所说,我们可以使用 `scp` 命令将文件或目录从本地复制到远程系统,反之亦然,或者在两台远程系统之间复制文件或目录。 -### 1. 使用 SCP 从本地系统复制文件到远程系统 +#### 1. 使用 SCP 从本地系统复制文件到远程系统 使用 `scp` 命令将文件从本地复制到远程系统,运行: @@ -137,7 +139,7 @@ SCP 有很多参数,你可以查看它的手册页来了解其他参数。让 $ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/ ``` -**示例输出:** +示例输出: ``` ostechnix@192.168.1.40's password: @@ -146,10 +148,10 @@ File1.txt 100% 104 814.0KB 让我们分析一下上面的命令,看看每个参数都做了什么。 -- **`File1.txt`** - 源文件 -- **`ostechnix`** - 远程系统的用户名 -- **`192.168.1.40`** - 远程系统的 IP 地址 -- **`/home/ostechnix/`** - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。 +- `File1.txt` - 源文件 +- `ostechnix` - 远程系统的用户名 +- `192.168.1.40` - 远程系统的 IP 地址 +- `/home/ostechnix/` - 远程系统中的目标目录。这是我们想要传输源文件的绝对路径,如 `File.txt`。 你还可以修改目标文件的名称。下面的命令将 `File1.txt` 传输到目的地,保存为 `myfile.txt`。 @@ -159,17 +161,15 @@ $ scp File1.txt ostechnix@192.168.1.40:/home/ostechnix/myfile.txt ![将文件从本地复制到远程系统][5] -将文件从本地复制到远程系统 - #### 2. 使用 SCP 从本地系统复制多个文件到远程系统 使用 `scp` 命令将多个文件从本地系统传输到远程系统,运行: -```bash +``` $ scp File1.txt File2.txt ostechnix@192.168.1.40:/home/ostechnix/ ``` -**示例输出:** +示例输出: ``` ostechnix@192.168.1.40's password: @@ -179,13 +179,11 @@ File2.txt 100% 496 6.3MB ![从本地复制多个文件到远程系统][6] -从本地复制多个文件到远程系统 - 这里: -- **`File1.txt`** 和 **`File2.txt`** - 源文件名 -- **`ostechnix@192.168.1.40`** - 远程系统的用户名和 IP 地址 -- **`/home/ostechnix`** - 目标文件的路径 +- `File1.txt` 和 `File2.txt` - 源文件名 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix` - 目标文件的路径 如果文件具有相同的扩展名,你可以使用以下替代命令来实现相同的目标。 @@ -201,24 +199,22 @@ $ scp *.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 3. 使用 SCP 从本地到远程系统递归复制目录 -递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 **`-r`** 参数。 +递归地将整个目录(包括子目录及其内容)从本地复制到远程系统,使用 `-r` 参数。 -```bash +``` $ scp -r Documents/ ostechnix@192.168.1.40:/home/ostechnix/ ``` ![从本地复制目录到远程系统][7] -从本地复制目录到远程系统 - -上述命令将整个 **`Documents`** 目录包括其内容复制到目标系统。 +上述命令将整个 `Documents` 目录包括其内容复制到目标系统。 其中, -- `-r` : 递归复制文件和目录,包括子目录及其内容 -- `Documents` : 源目录名称 -- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 -- **`/home/ostechnix`** : 目标目录的路径 +- `-r` - 递归复制文件和目录,包括子目录及其内容 +- `Documents` - 源目录名称 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix` - 目标目录的路径 #### 4. 用 SCP 将文件从远程系统传输到本地 @@ -232,14 +228,12 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/File1.txt Downloads/ 其中 -- **`ostechnix@192.168.1.40`** : 远程系统的用户名和 IP 地址 -- `/home/ostechnix/File.txt` : 远程系统文件的绝对路径 +- `ostechnix@192.168.1.40` - 远程系统的用户名和 IP 地址 +- `/home/ostechnix/File.txt` - 远程系统文件的绝对路径 - `Downloads` - 本地保存复制文件的位置 ![从远程系统传输文件到本地][8] -从远程系统传输文件到本地 - #### 5. 使用 SCP 将多个文件从远程系统传输到本地 将多个文件从远程系统复制到本地,在**花括号内**注明文件的绝对路径,如下所示: @@ -250,21 +244,19 @@ $ scp ostechnix@192.168.1.40:/home/ostechnix/\{File1.txt,File2.txt\} Downloads/ ![将多个文件从远程系统传输到本地][9] -将多个文件从远程系统传输到本地 - 上述命令将从远程系统的 `/home/ostechnix/` 目录中复制 `File1.txt` 和 `File2.txt` 到本地的 `Downloads` 目录中。 注意,**花括号内的逗号后面没有空格**。 #### 6. 从远程系统递归复制目录到本地 -使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 **`-r`** 参数。 +使用 `scp` 从远程系统递归复制整个目录(包括子目录及其内容)到本地系统,使用 `-r` 参数。 ``` $ scp -r ostechnix@192.168.1.40:/home/ostechnix/Documents Downloads/ ``` -上述命令将从远程系统将整个 **`Documents`** 目录复制到本地的 **`Downloads`** 目录。 +上述命令将从远程系统将整个 `Documents` 目录复制到本地的 `Downloads` 目录。 #### 7. 使用 SCP 在两台远程计算机之间复制文件 @@ -280,12 +272,12 @@ $ scp senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kuma - `senthil@192.168.1.40` - 文件源端远程系统的用户名和 IP 地址 - `/home/senthil/File1.txt` - 复制的文件名及其位置 -- **`kumar@192.168.1.20`** - 复制文件到目标端的用户名和 IP 地址 +- `kumar@192.168.1.20` - 复制文件到目标端的用户名和 IP 地址 - `/home/kumar` - 在目标端上保存复制文件的位置 上述命令将从远程主机 `192.168.1.40` 复制 `/home/senthil/File1.txt` 到 `192.168.1.20` 上的 `/home/kumar/` 目录。 -在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 **`-3`** 参数,如下所示: +在这种方法中,数据将直接从一个远程系统传输到另一个远程系统。如果你想通过本地机器路由流量,使用 `-3` 参数,如下所示: ``` $ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/kumar/ @@ -293,7 +285,7 @@ $ scp -3 senthil@192.168.1.40:/home/senthil/File1.txt kumar@192.168.1.20:/home/k #### 8. 使用 SCP 复制文件时启用压缩 -到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 **`-C`** 参数在传输文件时启用压缩。 +到目前为止,我们在没有压缩的情况下传输了文件。现在我们将使用 `-C` 参数在传输文件时启用压缩。 ``` $ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -305,7 +297,7 @@ $ scp -C File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 9. 使用 SCP 传输文件时限制带宽 -我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 字节 = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。 +我们可以使用 `-l` 参数限制带宽。注意,最大带宽单位为 Kbits/s。1 Byte = 8 bit。因此,如果你想将带宽限制在 200KB/s,`-l` 的值将是 **1600**(200*8)。 ``` $ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -315,7 +307,7 @@ $ scp -l 1600 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 10. 使用 SCP 复制文件时使用不同端口 -作为系统管理员,出于安全原因,你可能在远程服务器上[**更改了 SSH 协议的默认端口**][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:**大写的 P**。 +作为系统管理员,出于安全原因,你可能在远程服务器上 [更改了 SSH 协议的默认端口][10]。这种情况下,你可以在传输文件时使用 `-P` 参数指定端口号。注意:大写的 `P`。 ``` $ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -323,7 +315,7 @@ $ scp -P 2022 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 11. 使用 SCP 复制文件时使用不同的加密方法 -默认情况下,SCP 使用 **`AES-128`** 对文件进行加密。如果你想使用不同的加密方法,使用 **`c`** 参数。 +默认情况下,SCP 使用 `AES-128` 对文件进行加密。如果你想使用不同的加密方法,使用 `c` 参数。 例如,如果你想使用 **3des-cbc** 加密方法,命令如下所示: @@ -337,7 +329,7 @@ $ scp -c 3des-cbc File1.txt ostechnix@192.168.1.40:/home/ostechnix/ $ ssh -Q cipher localhost | paste -d, -s - ``` -**示例输出:** +示例输出: ``` 3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com @@ -345,7 +337,7 @@ $ ssh -Q cipher localhost | paste -d, -s - #### 12. 在详细模式下使用 SCP 复制文件 -如果你想知道使用 scp 复制文件时幕后发生了什么,你可以使用 **`-v`** 参数。使用详细模式传输文件时,终端上会显示执行 SCP 命令执行的每一步过程。这在故障排除时很方便。 +如果你想知道使用 `scp` 复制文件时幕后发生了什么,你可以使用 `-v` 参数。使用详细模式传输文件时,终端上会显示执行 `scp` 命令执行的每一步过程。这在故障排除时很方便。 ``` $ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -353,13 +345,11 @@ $ scp -v File1.txt ostechnix@192.168.1.40:/home/ostechnix/ 在详细模式下发送文件时,你将看到大量输出,如下所示: -![在 Verbose 模式下使用 SCP 复制文件][11] - -在详细模式下使用 SCP 复制文件 +![在详细模式下使用 SCP 复制文件][11] #### 13. 在安静模式下使用 SCP 传输文件 -我们可以使用 **`-q`** 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。 +我们可以使用 `-q` 参数在安静模式下传输文件。在安静模式下共享文件时,不会在输出中显示进度、警告或诊断信息。 ``` $ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -367,7 +357,7 @@ $ scp -q File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 14. 使用 SCP 传输文件时保留文件属性 -使用 **`-p`** 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。 +使用 `-p` 参数可以保留文件修改时间、访问时间和模式等文件属性。注意,这是**小写的 p**。 ``` $ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -377,7 +367,7 @@ $ scp -p File1.txt ostechnix@192.168.1.40:/home/ostechnix/ SSH 同时支持基于密码和密钥的身份验证。密钥是 Linux 环境中使用最广泛的身份验证方法。 -如果你想在传输文件时使用基于密钥的身份验证,使用 **`-i`** 参数指定身份文件或私钥。 +如果你想在传输文件时使用基于密钥的身份验证,使用 `-i` 参数指定身份文件或私钥。 ``` $ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -385,7 +375,7 @@ $ scp -i my_private_key.pem File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 16. 使用不同的 ssh 配置文件 -在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 **`-F`** 参数使用不同的 `ssh_config` 文件。 +在某些情况下,你需要使用不同的网络来连接到 Linux 系统,或你有一个代理服务器。这在情况下,你可以配合 `-F` 参数使用不同的 `ssh_config` 文件。 ``` $ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -393,7 +383,7 @@ $ scp -F /home/ostechnix/my_ssh_config File1.txt ostechnix@192.168.1.40:/home/os #### 17. 使用 IPv4 或 IPv6 复制文件 -在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 **`-4`** 参数,IPv6 网络添加 **`-6`** 参数可以实现这一点。 +在复制文件时,我们可以强制 SCP 只使用 IPv4 或 IPv6 地址。IPv4 网络添加 `-4` 参数,IPv6 网络添加 `-6` 参数可以实现这一点。 ``` $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ @@ -403,7 +393,7 @@ $ scp -6 File1.txt ostechnix@192.168.1.40:/home/ostechnix/ #### 问题 1:什么是 SCP? -**回答:** SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 +**回答:SCP 是一个命令行程序,旨在将文件和目录从本地系统安全地传输到远程系统,反之亦然,或者直接在两个远程系统之间传输。 #### 问题 2: 如何使用 SCP 将文件从本地复制到远程计算机? @@ -461,7 +451,7 @@ scp *.txt User@RemoteHost:/some/remote/directory #### 问题 6:可以压缩文件吗? -当然。使用 **`-C`** 压缩文件。文件会在源端压缩,在目标端自动解压缩。 +当然。使用 `-C` 压缩文件。文件会在源端压缩,在目标端自动解压缩。 ``` scp -C /some/large/file User@RemoteHost:/some/remote/directory @@ -469,7 +459,7 @@ scp -C /some/large/file User@RemoteHost:/some/remote/directory #### 问题 7:可以保留文件属性吗? -保留原始文件的修改时间、访问时间和模式等文件属性,使用 **`-p`** 参数。 +保留原始文件的修改时间、访问时间和模式等文件属性,使用 `-p` 参数。 ``` scp -p file.txt User@RemoteHost:/some/remote/directory @@ -477,7 +467,7 @@ scp -p file.txt User@RemoteHost:/some/remote/directory #### 问题 8: 可以使用其他端口吗? -当然。SCP 配合 **`-P`** 参数允许你使用其他端口。 +当然。SCP 配合 `-P` 参数允许你使用其他端口。 ``` scp -P 2022 file.txt User@RemoteHost:/some/remote/directory @@ -485,7 +475,7 @@ scp -P 2022 file.txt User@RemoteHost:/some/remote/directory #### 问题 9: 可以使用不同的加密方法吗? -当然。使用 **`-c`** 参数。 +当然。使用 `-c` 参数。 ``` scp -c 3des-cbc User@RemoteHost:/some/remote/directory @@ -505,7 +495,7 @@ ssh -Q cipher localhost | paste -d, -s - #### 问题 12:可以从 Windows 系统传输文件到 Linux 吗? -当然。使用 **PSCP** 程序将文件从 windows 传输到 Linux 平台,你也可以使用 **WinSCP**。 +当然。使用 `PSCP` 程序将文件从 windows 传输到 Linux 平台,你也可以使用 `WinSCP`。 ### 总结 @@ -520,7 +510,7 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/ 作者:[sk][a] 选题:[lkxed][b] 译者:[MjSeven](https://github.com/MjSeven) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -537,3 +527,4 @@ via: https://ostechnix.com/securely-transfer-files-with-scp-in-linux/ [9]: https://ostechnix.com/wp-content/uploads/2022/11/Transfer-Multiple-Files-from-Remote-System-to-Local-System.png [10]: https://ostechnix.com/how-to-change-apache-ftp-and-ssh-default-port-to-a-custom-port-part-3/ [11]: https://ostechnix.com/wp-content/uploads/2022/11/Copying-Files-with-SCP-in-Verbose-Mode.png +[0]: https://img.linux.net.cn/data/attachment/album/202212/24/152224vy4glx9x39mtth9b.jpg \ No newline at end of file