如何使用 SCP 安全傳輸檔案和目錄

Suraj Joshi 2023年1月30日
  1. SCP 命令
  2. scp 傳輸檔案和目錄的方法
如何使用 SCP 安全傳輸檔案和目錄

SCP,也被稱為安全拷貝,是一個命令列實用程式,用於將檔案和目錄從本地傳輸到遠端系統,反之亦然。它還允許我們在兩個遠端系統之間傳輸檔案和目錄。在傳輸過程中,檔案和密碼會被加密,所以這是一種更安全的傳輸方式。

SCP 命令

語法

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

標誌

  • OPTION:它代表 scp 選項,如密碼、ssh 配置、ssh 埠、限制、遞迴複製…等。
  • [user@]SRC_HOST:]file1:要複製的原始檔或目錄。
  • [user@]DEST_HOST:]file2:需要複製原始檔或目錄的目錄路徑。

scp 提供了各種控制傳輸的選項。一些最廣泛使用的選項是:

-P 指定遠端主機的 ssh 埠
-p 保留檔案修改和訪問時間
-q 抑制進度表和錯誤資訊
-C 傳輸時壓縮資料
-r 遞迴複製檔案

使用 scp 命令時要注意的事項

  1. 該命令使用 ssh 金鑰或密碼來驗證遠端系統。
  2. 識別帶有:符號的遠端系統。
  3. 我們必須看一下原始檔或目錄的讀許可權和目標檔案或目錄的寫許可權。
  4. scp 會無預警地覆蓋檔案。所以我們在傳輸檔案的過程中,一定要注意在兩個系統中共享相同名稱和位置的檔案。

scp 傳輸檔案和目錄的方法

從本地系統複製檔案到遠端系統

scp main.py remote_username@11.11.0.200:/Documents/directory

這個命令會提示我們輸入使用者密碼,輸入正確的密碼後就會開始傳輸。

輸出:

remote_username@11.11.0.200's password:
main.py                             100%    0     0.0KB/s   00:00

將本地系統中的檔案 main.py 複製到使用者名稱為 remote_username,IP 地址為 11.11.0.200 的遠端伺服器上。/Documents/directory 表示遠端伺服器上需要複製檔案的目標目錄。如果沒有指定遠端目錄,則檔案將被複制到遠端機器的主目錄。

如果遠端的 SSH 監聽的埠不是預設的 22 埠,我們可以使用 -P 選項指定埠。

scp -P 8080 main.py remote_username@11.11.0.200:/Documents/directory

從本地系統複製目錄到遠端系統

我們必須使用 -r 引數和 scp 命令來傳輸目錄,它代表了目錄內所有檔案的遞迴傳輸。

scp -r /Documents/myapp remote_username@11.11.0.200:/Documents/remote_app

它將本地機器上的 Documents 目錄內的 myapp 目錄複製到遠端機器的 Documents 目錄內的 remote_app

從遠端系統複製檔案到本地系統

為了將遠端系統的檔案複製到本地系統,我們使用遠端位置作為源,本地位置作為目的。

scp remote_username@11.11.0.200:/remote/main.py /Documents/local

它將遠端系統中的檔案 main.py 複製到本地系統中,目標目錄為/Documents/local

從一個遠端位置複製檔案到另一個遠端位置

scp userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2

它將 IP 地址為 11.11.0.200 的遠端主機上的檔案/host1/main.py 複製到 IP 地址為 11.11.0.205 的主機上的目錄 host2

為了將流量通過發出命令的機器進行路由,我們在 scp 命令中加入 -3 選項。

scp -3 userA@11.11.0.200:/host1/main.py userB@11.11.0.205:/host2
作者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

相關文章 - Linux Files and Directories