电脑安全模式怎么复制文件

发布时间: 2023-04-15 10:14 阅读: 文章来源:转载

SCP 是 linux 发行版中的命令行工具,用于通过网络安全地跨系统复制文件和目录。SCP 代表安全复制,因为它使用 ssh 协议复制文件。

拷贝时,scp 命令建立 ssh 连接到远程系统。换句话说,我们可以说 scp 在后端使用相同的 SSH 安全机制,它需要密码或密钥进行身份验证。

SCP 命令语法

从本地系统复制到远程主机

scp user@target_host:/

从远程主机复制到本地系统

scp user@target_host:/files

下面列出了 scp 命令中使用最广泛的一些选项

-C 启用压缩-i 身份文件或私钥-l 复制时限制带宽-P 目标主机 SSH 端口号-p 在复制时保留文件的权限、模式和访问时间-q 禁止显示 SSH 的警告消息-r 递归复制文件和目录-v 详细输出1) 从本地复制文件到远程

假设我们要将 jdk rpm 包从本地 Linux 系统复制到远程系统 (172.20.10.8) /opt 目录下

$ scp jdk-linux-x64_bin.rpm root@172.20.10.8:/optroot@172.20.10.8‘s password:jdk-linux-x64_bin.rpm100%10MB27.1MB/s00:00$2) 从远程复制文件到本地

Suppose we want to copy a file from remote system to our local system under the /tmp folder, execute the following,

假设我们要将文件从远程复制到本地 /tmp 目录下

$ scp root@172.20.10.8:/root/Technical-Doc-RHS.odt /tmproot@172.20.10.8‘s password:Technical-Doc-RHS.odt100% 1109KB31.8MB/s00:00$ ls -l /tmp/Technical-Doc-RHS.odt-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt$3) 复制文件时详细输出

我们可以在复制文件时使用 -v 选项启用详细输出。使用详细输出,我们可以很容易地发现后台到底发生了什么。这在调试连接、身份验证和配置问题时非常有用。

$ scp -v jdk-linux-x64_bin.rpm root@172.20.10.8:/optExecuting: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /optOpenSSH_7.8p1, OpenSSL 1.1.1 FIPS11 Sep 2018debug1: Reading configuration data /etc/ssh/ssh_configdebug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.confdebug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.configdebug1: /etc/ssh/ssh_config.d/05-redhat.conf line 8: Applying options for *debug1: Connecting to 172.20.10.8 [172.20.10.8] port 22.debug1: Connection established.…………debug1: Next authentication method: passwordroot@172.20.10.8‘s password:4) 复制多个文件到远程

使用 scp 命令可以一次性拷贝多个文件到远程。指定以空格分隔多个文件,示例如下

$ scp install.txt index.html jdk-linux-x64_bin.rpm root@172.20.10.8:/mntroot@172.20.10.8‘s password:install.txt 100%0 0.0KB/s00:00index.html100%85KB7.2MB/s00:00jdk-linux-x64_bin.rpm 100%10MB25.3MB/s00:00[pkumar@linuxtechi ~]$5) 跨两个远程系统复制文件

使用 scp 命令,我们可以在两个远程主机之间复制文件和目录,假设我们有一个本地 Linux 系统,它可以连接到两个远程 Linux 系统,那么从我的本地系统,我可以使用 scp 命令在这两个系统之间复制文件,语法如下:

$scp user@remote_hosts1:/user@remote_host2:/

示例如下所示:

$ scp pkumar@172.20.10.9:~/backup-Oct.zip root@172.20.10.8:/tmp$ ssh root@172.20.10.8 "ls -l /tmp/backup-Oct.zip"-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip6) 递归复制文件和目录

在 scp 命令中使用 -r 选项递归地将整个目录从一个系统复制到另一个系统,示例如下

$ scp -r Downloads root@172.20.10.8:/opt

使用以下命令验证下载文件夹是否复制到远程系统

$ ssh root@172.20.10.8 "ls -ld /opt/Downloads"drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads$7) 通过启用压缩来增加拷贝速度

我们可以通过使用 -C 选项启用压缩来增加传输或复制速度,它将自动在源处启用压缩并在目标处解压缩。

假设我们需要递归传输 Downlod 目录时启用压缩

$ scp -r -C Downloads root@172.20.10.8:/mnt8) 复制时限制带宽

Use ‘-l’ option in scp command to put limit on bandwidth usage while copying. Bandwidth is specified in Kbit/s, example is shown below,

使用 SCP 命令中的 -l 选项对带宽使用限制。单位 Kbit/s,示例如下

$ scp -l 500 jdk-linux-x64_bin.rpmroot@172.20.10.8:/var9) 使用不同的 SSH 端口

在某些情况下,目标主机上的 ssh 端口会被更改,我们可以使用 -P 选项指定 ssh 端口号。

$ scp -P 2022 jdk-linux-x64_bin.rpmroot@172.20.10.8:/var10) 复制时保留权限、模式和访问时间

在 scp 命令中使用 -p 选项保存从源复制到目标时的权限、访问时间和模式

$ scp -p jdk-linux-x64_bin.rpmroot@172.20.10.8:/var/tmpjdk-linux-x64_bin.rpm100%10MB13.5MB/s00:00$11) 以安静模式复制文件

在 scp 命令中使用 -q 选项禁止 ssh 的传输进度、警告和诊断消息。示例如下

$ scp -q -r Downloads root@172.20.10.8:/var/tmp12) 使用标识文件

在大多数 Linux 环境中,首选基于密钥的身份验证。在 scp 命令中,我们可以使用 -i 选项指定标识文件或私钥文件,示例如下

$ scp -i my_key.pem -r Downloads root@172.20.10.8:/root13) 使用不同的 ssh 配置文件

在某些情况下,您使用不同的网络连接到 Linux 系统,可能是某些网络背后是代理服务器,所以在这种情况下,我们必须有不同的 ssh_conig 文件。

scp 命令中不同的 ssh 配置文件通过 -F 选项指定,示例如下

$ scp -F /home/pkumar/new_ssh_config -r Downloads \ root@172.20.10.8:/rootroot@172.20.10.8‘s password:jdk-linux-x64_bin.rpm100%10MB16.6MB/s00:00backup-Oct.zip100%713MB41.9MB/s00:17index.html100%85KB6.6MB/s00:00$14) 使用不同的密码

缺省情况下,scp 使用 AES-128 算法对文件进行加密。如果您想使用另一个算法,则使用 -c 选项后跟算法名称,示例如下

$ scp -c 3des-cbc -r Downloads root@172.20.10.8:/root

使用下面的命令可以查看 ssh 和 scp 支持的加密算法

$ 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$我的开源项目

course-tencent-cloud(酷瓜云课堂 - gitee 仓库)course-tencent-cloud(酷瓜云课堂 - github 仓库)

•••展开全文
相关文章