假設您要在 Linux 系統上的服務器之間傳輸一些文件。您可以通過多種方式完成任務,但如果您的首要任務是安全地傳輸文件,那麼您只有幾個選擇。最簡單的解決方案是使用 scp 或安全複製命令來傳輸您的文件,而不必擔心安全問題。在本文中,我們將解釋如何在您的 Linux 系統上使用 scp 命令安全地使用傳輸文件。

在 Linux 中使用 scp 命令傳輸文件(2023)

目錄

什麼是 Linux 中的 scp 命令

當談到通過安全網絡傳輸文件時, scp 命令可能非常有用。它代表安全複製協議並通過 SSH(安全外殼)連接在兩個系統之間傳輸文件和目錄。使用 ssh,您可以確保文件的安全性,因為它們在默認情況下是加密的。簡單來說,scp 命令是 cp 命令的更安全版本,您可以在我們的 Linux 終端命令文章中閱讀所有相關信息。

如何使用 scp 命令:語法和選項

在我們可以通過 scp 傳輸文件之前,讓我們看看這裡命令的語法和選項:

scp

理解語法:

首先, 指定您需要從中傳輸文件/目錄的“源”系統。其次, 指定您要將文件傳輸到的“目標”系統/目錄。

如果你留下以上任何一個參數,Linux中的scp命令會先查找文件,然後將文件複製到本地。與命令配對的一些選項是:

OptionsDestination-P指定連接主機系統的端口。如果省略,則默認使用端口 22。-p 複製到目標系統時保留原始文件的修改時間、訪問時間和模式。-r 將整個目錄遞歸複製到目標系統。-J 用於連接源系統和目標系統通過代理系統(跳轉主機)。-3使用此標誌時,它會將文件複製到目標系統和本地系統-4強制 scp 命令僅使用 IPv4 地址。-6強制scp 命令只使用 IPv6 地址。

如何使用 scp 命令複製文件

在 Linux 中使用 scp 命令之前,您需要滿足一些先決條件主機和目標系統:

應該安裝 sshroot 訪問權限或任何具有 sudo 權限的用戶

將文件從本地主機複製到遠程目標

如果您有需要從本地傳輸的文件系統到遠程目標,您需要使用以下語法:

scp @:

如果上面的語法看起來很複雜,一個例子將把它搞清楚:

scp test.txt [email protected]:/home/remote2/Documents/

在上面的例子中:

test.txt是要傳輸的文件名,在本地系統的當前目錄下。test是用戶名在目標系統上。139.144.11.105 是目標系統的 IP 地址。/home/remote2/Documents/是目標系統上將保存傳輸文件的位置。

將文件從遠程主機複製到本地目標

如果您需要將文件從遠程主機傳輸到本地機器,請在您的 Linux 系統上使用以下 scp 命令語法:

scp @:

例如,假設您需要從您正在處理的遠程服務器傳輸名為 test.py 的文件,使用這個命令:

scp [email protected]:/home/test/test1.py ~/test1.py

在這個例子中:

test是遠程主機用戶名。10.10.11.113為遠程主機IP地址。/home/test/test1.py為遠程主機要傳輸的文件路徑。~/test1.py為文件名後傳輸到本地機器並存儲在主目錄中。

從一個遙控器傳輸文件Host to Another Remote Target

使用 scp 命令,您不僅可以在本地系統和遠程計算機之間傳輸文件,還可以在兩個遠程系統之間傳輸文件。但是,在將文件從一個遠程系統傳輸到另一個遠程系統之前,建議在源系統上生成一個 ssh 私鑰和一個 ssh 公鑰,並將公鑰的副本存儲在目標系統中。

在兩個遠程系統之間傳輸文件時,用戶通常會抱怨“Host key verification failed”錯誤。要繞過錯誤,請使用 ssh-key 作為附加措施。我們已經在此處解釋瞭如何執行此操作:

1.使用以下命令在源服務器上生成公鑰/私鑰對:

ssh-keygen-t

2.對於加密算法,您可以使用“rsa”,這是最常用的算法或您選擇的任何其他算法。

3.然後,系統會要求您選擇存儲 ssh 密鑰的位置。您可以將其存儲在您選擇的任何位置或默認位置。

4.對於密碼,您可以輸入您選擇的任何內容或按 Enter 將其留空。

5.然後,使用以下命令將公鑰複製到目標服務器。有了它,您甚至可以使用 ssh 無需密碼登錄到目標系統。

ssh-copy-id @

注意:無密碼登錄方法僅適用於您為其生成 ssh 密鑰的用戶。

6.在遠程服務器上創建並存儲 ssh 密鑰後,使用此 scp 命令語法在運行 Linux 的兩個遠程系統之間交換文件:

scp @: @:

假設您需要將名為 test.txt 的文件從一台遠程主機傳輸到另一台遠程接收器,請使用命令:

scp [email protected]:/home/test1/test.txt [email protected]:/home/remote2/Documents/test1.txt

本例中:

remote1為遠程發件人中的用戶名host10.10.11.113 是遠程發送端的IP地址 host/home/test1/test.txt 是要發送的文件路徑 remote2 是遠程接收端的用戶名 target10.11.27.111 是IP地址遠程接收器目標/家/remote2/Documents/test1.txt 是要接收的文件要保存的名稱和路徑。

使用 scp 命令傳輸多個文件

一個一個地傳輸多個文件對任何人來說都是一項乏味的任務。相反,您可以使用以下語法在 Linux 上使用 scp 命令交換文件:

scp @:

例如-假設您需要發送四個文件,包括test1.txt、test2.py、test3.sh和test4.c,到一個遠程接收者,您可以使用下面的命令:

scp-P 22 test1.txt test2.py test3.sh test4.c [email protected]:/home/remote_1/Documents

讓我們了解示例中的命令是如何工作的以及它的作用:

-p 2222 用於指定通過端口連接 22test1.txt test2.py test3.sh test4.c 是要傳輸的文件名 remote_1 是接收系統的用戶名10.10.11.113 是IP地址receiver/home/remote_1/Documents 是指存放接收到的文件的路徑。

你甚至可以使用通配符發送具有相同擴展名的多個文件,如下所示:

scp . @:

例如,如果您需要將所有.py 文件發送到遠程服務器,在 Linux 終端中使用以下 scp 命令:

scp *.py [email protected]:/home/remote_1/

這裡,

*.py表示所有的python文件remote1是接收方的用戶名10.10.11.113是接收方的IP地址/home/remote_1/是接收到的文件存放位置

常見問題

SCP 文件傳輸安全嗎?

安全複製協議或 scp 是一種基於 SSH 技術的協議,我們es 加密和身份驗證,用於兩台主機之間的文件交換。這確保了兩台主機之間完全的數據安全性和完整性。

SCP 是否比 SFTP 更安全?

SCP 和 SFTP 協議在安全性方面不相上下。在 SFTP 上使用 scp 的主要優點是傳輸速度快,這在高延遲網絡中特別有用。

在Linux中使用scp命令安全地傳輸文件

在某個時間點,每個用戶都需要通過網絡交換一些文件。即使在高延遲網絡上,scp 命令也可以輕鬆安全高效地傳輸文件。當然,了解各種 scp 選項和語法也很有用。您還可以參考我們關於如何在 Linux 中重命名文件以及如何在 Linux 中刪除文件的指南,以進一步提高您在操作系統上的文件管理技能。我們希望本文能幫助您了解如何使用 scp 命令在 Linux 計算機上傳輸文件。如果您在使用命令時遇到任何問題,請在評論部分告訴我們。

發表評論

去年,MSI 推出了配備英特爾酷睿 i9-12900HX 和 RTX 3080 Ti 筆記本電腦 GPU 的 Titan GT77,它是地球上最強大的遊戲筆記本電腦。這是重中之重 […]

自 iPhone 14 系列推出以來已經幾個月了,人們已經確定今年是 Pro 機型的元年。但是,如果您打算追求華麗的專業人士,那麼在過去的幾年裡,Wondershare 一直在開發一些最好的軟件和工具來簡化我們的生活和創造性的努力。特別是,Wondershare Filmora 獲得了無數讚譽。它是視頻編輯領袖獎的獲得者 […]

Categories: IT Info