Linux 的 SCP 命令

Linux 的 SCP 命令

兩臺主機傳送文件的時候, 經常用到 scp 命令。scp 的基本命令格式如下:scp [參數] [原路徑] [目標路徑]

常用的命令參數

  • -1 強制scp命令使用協議ssh1
  • -2 強制scp命令使用協議ssh2
  • -4 強制scp命令只使用IPv4尋址
  • -6 強制scp命令只使用IPv6尋址
  • -B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
  • -C 允許壓縮。(將-C標誌傳遞給ssh,從而打開壓縮功能)
  • -p 留原文件的修改時間,訪問時間和訪問權限。
  • -q 不顯示傳輸進度條。
  • -r 遞歸複製整個目錄。
  • -v 詳細方式顯示輸出。scp和ssh(1)會顯示出整個過程的調試信息。這些信息用於調試連接,驗證和配置問題。
  • -c cipher 以cipher將數據傳輸進行加密,這個選項將直接傳遞給ssh。
  • -F ssh_config 指定一個替代的ssh配置文件,此參數直接傳遞給ssh。
  • -i identity_file 從指定文件中讀取傳輸時使用的密鑰文件,此參數直接傳遞給ssh。
  • -l limit 限定用戶所能使用的帶寬,以Kbit/s爲單位。
  • -o ssh_option 如果習慣於使用ssh_config(5)中的參數傳遞方式,
  • -P port 注意是大寫的P, port是指定數據傳輸用到的端口號
  • -S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項。

使用案例

案例 1

比如想要從遠程主機 (1.1.1.1) 使用ivy用戶複製一個/home/ivy/test目錄到本地主機的/home/ivy/目錄下。

scp -r -v [email protected]:/home/ivy/test /home/ivy/

輸入後會指引輸入遠程主機 ivy 用戶的密碼來創建連接。

案例 2

如果與遠程主機創建連接的驗證方式是密鑰驗證,那麼就複雜點了。

首先把公鑰拷貝到遠程主機ivy用戶的/home/ivy/.ssh/authorized_keys文件中。

然後把私鑰拷貝到本地主機的某個目錄下,比如/home/ivy/private.pem

接着劃重點,需要修改一下私鑰文件的權限(不然會報WARNING: UNPROTECTED PRIVATE KEY FILE!的錯),具體操作如下。

chmod 700 /home/ivy/private.pem

再接着就可以正常使用 scp 命令了。

scp -i /home/ivy/private.pem -r -v [email protected]:/home/ivy/test /home/ivy/

案例 3

如果遠程主機不是默認的 22 端口創建連接呢?那麼加一個參數就可以了,比如說 2021 端口。

scp -P 2021 -i /home/ivy/private.pem -r -v [email protected]:/home/ivy/test /home/ivy/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章