如何使用 SCP 安全傳輸檔案和目錄
Suraj Joshi
2023年1月30日
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
命令時要注意的事項
- 該命令使用
ssh
金鑰或密碼來驗證遠端系統。 - 識別帶有
:
符號的遠端系統。 - 我們必須看一下原始檔或目錄的讀許可權和目標檔案或目錄的寫許可權。
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 is a backend software engineer at Matrice.ai.
LinkedIn