溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux中怎么使用SCP命令安全傳輸文件

發(fā)布時間:2021-07-22 15:08:29 來源:億速云 閱讀:328 作者:Leah 欄目:系統(tǒng)運(yùn)維

Linux中怎么使用SCP命令安全傳輸文件,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

SCP(安全復(fù)制Secure Copy)是 Linux 和 Unix 之類的系統(tǒng)中的命令行工具,用于通過網(wǎng)絡(luò)安全地跨系統(tǒng)傳輸文件和目錄。當(dāng)我們使用 scp 命令將文件和目錄從本地系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)時,則在后端與遠(yuǎn)程系統(tǒng)建立了 ssh 連接。換句話說,我們可以說 scp 在后端使用了相同的 SSH 安全機(jī)制,它需要密碼或密鑰進(jìn)行身份驗(yàn)證。

在本教程中,我們將討論 14 個有用的 Linux scp 命令示例。

scp 命令語法:

# scp <選項(xiàng)> <文件或目錄> 用戶名@目標(biāo)主機(jī):/<文件夾> # scp <選項(xiàng)> 用戶名@目標(biāo)主機(jī):/文件 <本地文件夾>

scp 命令的第一個語法演示了如何將文件或目錄從本地系統(tǒng)復(fù)制到特定文件夾下的目標(biāo)主機(jī)。

scp 命令的第二種語法演示了如何將目標(biāo)主機(jī)中的文件復(fù)制到本地系統(tǒng)中。

下面列出了 scp 命令中使用最廣泛的一些選項(xiàng),

  • -C 啟用壓縮

  • -i 指定識別文件或私鑰

  • -l 復(fù)制時限制帶寬

  • -P 指定目標(biāo)主機(jī)的 ssh 端口號

  • -p 復(fù)制時保留文件的權(quán)限、模式和訪問時間

  • -q 禁止 SSH 警告消息

  • -r 遞歸復(fù)制文件和目錄

  • -v 詳細(xì)輸出

現(xiàn)在讓我們跳入示例!

示例:1)使用 scp 將文件從本地系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)

假設(shè)我們要使用 scp 命令將 jdk 的 rpm 軟件包從本地 Linux 系統(tǒng)復(fù)制到遠(yuǎn)程系統(tǒng)(172.20.10.8),請使用以下命令,

[root@linuxtechi ~]$ scp jdk-linux-x64_bin.rpm root@linuxtechi:/optroot@linuxtechi's password:jdk-linux-x64_bin.rpm                          100%   10MB  27.1MB/s   00:00[root@linuxtechi ~]$

上面的命令會將 jdk 的 rpm 軟件包文件復(fù)制到 /opt 文件夾下的遠(yuǎn)程系統(tǒng)。

示例:2)使用 scp 將文件從遠(yuǎn)程系統(tǒng)復(fù)制到本地系統(tǒng)

假設(shè)我們想將文件從遠(yuǎn)程系統(tǒng)復(fù)制到本地系統(tǒng)下的 /tmp 文件夾,執(zhí)行以下 scp 命令,

[root@linuxtechi ~]$ scp root@linuxtechi:/root/Technical-Doc-RHS.odt /tmproot@linuxtechi's password:Technical-Doc-RHS.odt                         100% 1109KB  31.8MB/s   00:00[root@linuxtechi ~]$ ls -l /tmp/Technical-Doc-RHS.odt-rwx------. 1 pkumar pkumar 1135521 Oct 19 11:12 /tmp/Technical-Doc-RHS.odt[root@linuxtechi ~]$

示例:3)使用 scp 傳輸文件時的詳細(xì)輸出(-v)

scp 命令中,我們可以使用 -v 選項(xiàng)啟用詳細(xì)輸出。使用詳細(xì)輸出,我們可以輕松地發(fā)現(xiàn)后臺確切發(fā)生了什么。這對于調(diào)試連接、認(rèn)證和配置等問題非常有用。

root@linuxtechi ~]$ scp -v jdk-linux-x64_bin.rpm root@linuxtechi:/optExecuting: program /usr/bin/ssh host 172.20.10.8, user root, command scp -v -t /optOpenSSH_7.8p1, OpenSSL 1.1.1 FIPS  11 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.&hellip;&hellip;&hellip;&hellip;debug1: Next authentication method: passwordroot@linuxtechi's password:

示例:4)將多個文件傳輸?shù)竭h(yuǎn)程系統(tǒng)

可以使用 scp 命令一次性將多個文件復(fù)制/傳輸?shù)竭h(yuǎn)程系統(tǒng),在 scp 命令中指定多個文件,并用空格隔開,示例如下所示

[root@linuxtechi ~]$ scp install.txt index.html jdk-linux-x64_bin.rpm root@linuxtechi:/mntroot@linuxtechi's password:install.txt                                      100%    0     0.0KB/s   00:00index.html                                       100%   85KB   7.2MB/s   00:00jdk-linux-x64_bin.rpm                            100%   10MB  25.3MB/s   00:00[root@linuxtechi ~]$

示例:5)在兩個遠(yuǎn)程主機(jī)之間傳輸文件

使用 scp 命令,我們可以在兩個遠(yuǎn)程主機(jī)之間復(fù)制文件和目錄,假設(shè)我們有一個可以連接到兩個遠(yuǎn)程 Linux 系統(tǒng)的本地 Linux 系統(tǒng),因此從我的本地 Linux 系統(tǒng)中,我可以使用 scp 命令在這兩個系統(tǒng)之間復(fù)制文件,

命令語法:

# scp 用戶名@遠(yuǎn)程主機(jī)1:/<要傳輸?shù)奈募?gt; 用戶名@遠(yuǎn)程主機(jī)2:/<文件夾>

示例如下:

# scp root@linuxtechi:~/backup-Oct.zip root@linuxtechi:/tmp# ssh root@linuxtechi "ls -l /tmp/backup-Oct.zip"-rwx------. 1 root root 747438080 Oct 19 12:02 /tmp/backup-Oct.zip

示例:6)遞歸復(fù)制文件和目錄(-r)

scp 命令中使用 -r 選項(xiàng)將整個目錄從一個系統(tǒng)遞歸地復(fù)制到另一個系統(tǒng),示例如下所示:

[root@linuxtechi ~]$ scp -r Downloads root@linuxtechi:/opt

使用以下命令驗(yàn)證 Downloads 文件夾是否已復(fù)制到遠(yuǎn)程系統(tǒng),

[root@linuxtechi ~]$ ssh root@linuxtechi "ls -ld /opt/Downloads"drwxr-xr-x. 2 root root 75 Oct 19 12:10 /opt/Downloads[root@linuxtechi ~]$

示例:7)通過啟用壓縮來提高傳輸速度(-C)

scp 命令中,我們可以通過使用 -C 選項(xiàng)啟用壓縮來提高傳輸速度,它將自動在源主機(jī)上啟用壓縮并在目標(biāo)主機(jī)上解壓縮。

root@linuxtechi ~]$ scp -r -C Downloads root@linuxtechi:/mnt

在以上示例中,我們正在啟用壓縮的情況下傳輸下載目錄。

示例:8)復(fù)制時限制帶寬(-l)

scp 命令中使用 -l 選項(xiàng)設(shè)置復(fù)制時對帶寬使用的限制。帶寬以 Kbit/s 為單位指定,示例如下所示:

[root@linuxtechi ~]$ scp -l 500 jdk-linux-x64_bin.rpm  root@linuxtechi:/var

示例:9)在 scp 時指定其他 ssh 端口(-P)

在某些情況下,目標(biāo)主機(jī)上的 ssh 端口會更改,因此在使用 scp 命令時,我們可以使用 -P 選項(xiàng)指定 ssh 端口號。

[root@linuxtechi ~]$ scp -P 2022 jdk-linux-x64_bin.rpm  root@linuxtechi:/var

在上面的示例中,遠(yuǎn)程主機(jī)的 ssh 端口為 “2022”。

示例:10)復(fù)制時保留文件的權(quán)限、模式和訪問時間(-p)

從源復(fù)制到目標(biāo)時,在 scp 命令中使用 -p 選項(xiàng)保留權(quán)限、訪問時間和模式。

[root@linuxtechi ~]$ scp -p jdk-linux-x64_bin.rpm  root@linuxtechi:/var/tmpjdk-linux-x64_bin.rpm                            100%   10MB  13.5MB/s   00:00[root@linuxtechi ~]$

示例:11)在 scp 中以安靜模式傳輸文件(-q)

scp 命令中使用 -q 選項(xiàng)可禁止顯示 ssh 的傳輸進(jìn)度、警告和診斷消息。示例如下所示:

[root@linuxtechi ~]$ scp -q -r Downloads root@linuxtechi:/var/tmp[root@linuxtechi ~]$

示例:12)在傳輸時使用 scp 中的識別文件(-i)

在大多數(shù) Linux 環(huán)境中,首選基于密鑰的身份驗(yàn)證。在 scp 命令中,我們使用 -i 選項(xiàng)指定識別文件(私鑰文件),示例如下所示:

[root@linuxtechi ~]$ scp -i my_key.pem -r Downloads root@linuxtechi:/root

在上面的示例中,my_key.pem 是識別文件或私鑰文件。

示例:13)在 scp 中使用其他 ssh_config 文件(-F)

在某些情況下,你使用不同的網(wǎng)絡(luò)連接到 Linux 系統(tǒng),可能某些網(wǎng)絡(luò)位于代理服務(wù)器后面,因此在這種情況下,我們必須具有不同的 ssh_config 文件。

通過 -F 選項(xiàng)在 scp 命令中指定了不同的 ssh_config 文件,示例如下所示:

[root@linuxtechi ~]$ scp -F /home/pkumar/new_ssh_config -r Downloads root@linuxtechi:/rootroot@linuxtechi's password:jdk-linux-x64_bin.rpm                     100%   10MB  16.6MB/s   00:00backup-Oct.zip                            100%  713MB  41.9MB/s   00:17index.html                                100%   85KB   6.6MB/s   00:00[root@linuxtechi ~]$

示例:14)在 scp 命令中使用其他加密方式(-c)

默認(rèn)情況下,scp 使用 AES-128 加密方式來加密文件。如果你想在 scp 命令中使用其他加密方式,請使用 -c 選項(xiàng),后接加密方式名稱。

假設(shè)我們要在用 scp 命令傳輸文件時使用 3des-cbc 加密方式,請運(yùn)行以下 scp 命令:

[root@linuxtechi ~]# scp -c 3des-cbc -r Downloads root@linuxtechi:/root

使用以下命令列出 sshscp 支持的加密方式:

[root@linuxtechi ~]# ssh -Q cipher localhost | paste -d , -s -3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,root@linuxtechi,aes128-ctr,aes192-ctr,aes256-ctr,root@linuxtechi,root@linuxtechi,root@linuxtechi[root@linuxtechi ~]#

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI