SCP 與 SFTP:您應該使用哪一種進行檔案傳輸

SCP 與 SFTP:您應該使用哪一種進行檔案傳輸

SCP(安全複製)和 SFTP(安全文件傳輸程序)是 FTP(文件傳輸協定)的替代方案,對於非計劃文件傳輸非常有用。所有這三個都可以幫助完成透過網路媒體將檔案從一個位置移動到另一個位置。但是,FTP 以純文字形式傳送數據,而其他兩種則使用 SSH 檔案傳輸協定 (SFTP) 進行通訊。

什麼是SCP?

SCP 是一個非互動式檔案傳輸程序,首次出現在 4.2 BSD 中。歷史上,它使用 rlogin 和 SSH 在兩台電腦之間傳輸檔案。這使得它很容易受到遠端攻擊,因為它在遠端主機上運行命令來啟動資料傳輸。

SCP 中的檔案和目錄傳輸可以在本機電腦和遠端主機或兩個遠端主機之間進行。這使得它在使用不同的類 UNIX 發行版時更加靈活。

顯示使用 SCP 在本機電腦和遠端伺服器之間進行檔案傳輸的終端。

SCP 也可以與通配符一起使用,以協助根據部分字串標準傳輸多個檔案。與直接傳輸類似,這些通配符也可用於傳送和接收檔案和目錄。

什麼是 SFTP?

與 SCP 不同,SFTP 是一種檔案傳輸程序,其運作方式類似於 FTP 提示字元和遠端 shell。它提供了互動式提示,可讓您導航遠端電腦的檔案系統並操作其內容。

SFTP 還使用多種 SSH 功能(例如壓縮或公鑰身份驗證)來連接到主機並進入互動模式。這使其成為無頭 UNIX 機器的強大遠端檔案系統瀏覽器。

顯示 SFTP 提示的終端會將檔案從遠端伺服器傳回本機。

如果您使用非互動式驗證方法,SFTP 也可以用於自動檢索檔案;否則,它會在互動式身份驗證成功後檢索它們。

SCP 與 SFTP:哪個比較好?

這兩個文件傳輸程序之間存在一些相似之處。兩者都使用 TCP 連接埠 22 並在 SSH 上運行,這使得它們在安全性方面相同。此外,這兩個程式還支援大檔案的傳輸,因為它們沒有檔案大小限制。因此,SCP 和 SFTP 之間的主要區別在於它們的規格和功能。

功能性

從本質上講,S​​CP 的基本目的是在兩台機器之間安全地複製資料。這在程式的基本語法中很明顯,它要求您為每個檔案傳輸提供來源和目標。這使得簡單的一次性檔案傳輸變得更容易。

同時,SFTP 是更完整的檔案傳輸用戶端,提供檔案瀏覽器和多檔案下載。這些功能使 SFTP 成為需要不斷與遠端主機傳輸檔案的使用者的理想選擇。

獲勝者:SFTP

速度

由於 SCP 和 SFTP 都使用 SFTP 協定來加密和傳輸文件,因此這兩個程式在發送或接收資料時共享相同的原始傳輸速度。然而,開始轉移則是另一回事了。

SCP 在達到連接的最大原始傳輸速度方面通常更快,而 SFTP 則落後,因為它試圖「加速」其速度。此外,啟動 SFTP 傳輸還需要您進入提示並使用 FTP 命令上傳和下載檔案。

得獎者:SCP

安全

SCP 和 SFTP 都依賴 SSH 協定作為其基礎傳輸層。這使他們能夠使用軍用級加密透過網路安全地傳輸資料。

儘管如此,SFTP 透過提供 -f 標誌來使 SCP 脫穎而出,該標誌允許您立即將任何傳輸的資料寫入磁碟。不僅如此,它的命令列介面還提供了許多實用程序,允許您更新檔案的權限位。

獲勝者:SFTP

文件大小

Linux 中 SCP 和 SFTP 的大多數現代版本都是 64 位元二進位檔案。這意味著只要底層檔案系統也支持,這兩個實用程式理論上都可以支援最多 16 艾字節的任意資料。

也就是說,SCP 仍然會在處理大型檔案時出現一些問題,尤其是在使用較舊的類 UNIX 機器時。這主要是由於那些運行 32 位元版本 SCP 的系統一次只能處理最多 4 GB 的檔案。

獲勝者:SFTP

命令列

SCP 是非互動式的,無法讀取命令腳本,因此所有內容都必須寫在命令列上。然而,這也允許它作為更大的 shell 腳本的一部分運行,這在自動化系統管理任務時很有幫助。

另一方面,SFTP 是互動式的,因此它可以從檔案中讀取命令。雖然這對於自動化也很有用,但它可能會比較笨重,因為它需要一組與常規 shell 腳本不同的命令。

得獎者:SCP

恢復檔案傳輸

SCP 不完全支援此功能。這使得程序很容易在不穩定和間歇性的連接上重複整個傳輸。同時,SFTP 在帶有標誌的 CLI 提示符號上以及使用和子命令的-a命令列用戶端上都支援它。regetreput

獲勝者:SFTP

您應該使用哪一種進行檔案傳輸:SCP 或 SFTP?

雖然它們有相似之處和不同之處,但說其中一個比另一個更好是不公平的。兩者都傳輸檔案並具有類似的安全功能,因為它們在 SSH 上運行。最終,您選擇的實用程式將基於最適合您的環境要求的實用程式。

使用 SCP 用於

  • 當您想要在兩個遠端主機之間傳輸單一檔案或目錄。
  • 當您想要透過網路自動傳輸資料。
  • 當您使用不支援 SFTP 的舊版類 UNIX 系統。

使用 SFTP 用於

  • 當您從單一遠端主機跨多個目錄傳輸多個檔案。
  • 當您想要與遠端主機的檔案系統互動而不開啟新的 SSH 會話。
  • 當您想要一個即使在間歇性網路條件下也能工作的可靠檔案傳輸程式。

考慮到這一點,在兩個系統之間發送資料只是理解電腦如何透過網路進行通訊的第一步。透過使用 dig 瀏覽我們的 DNS 解析實作指南,了解您的 Linux 機器如何知道要將資料傳送到哪裡。

圖片來源:Alejandro Escamilla,來自 Unsplash。所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *