在 Linux 下使用 scp 命令
scp 是安全拷貝協議(Secure Copy Protocol)的縮寫,和眾多 Linux/Unix 使用者所熟知的拷貝(cp)命令一樣。scp 的使用方式類似於 cp 命令,cp 命令將一個檔案或資料夾從本地作業系統的一個位置(源)拷貝到目標位置(目的),而 scp 用來將檔案或資料夾從網路上的一個主機拷貝到另一個主機當中去。
scp 命令的使用方法如下所示,在這個例子中,我將一個叫 “importantfile” 的檔案從本機(10.10.16.147)拷貝到遠端主機(10.0.0.6)中。在這個命令裡,你也可以使用主機名字來替代IP地址。
[root@localhost ~]# scp importantfile admin@10.0.0.6:/home/admin/ The authenticity of host '10.0.0.6 (10.0.0.6)' can't be established. RSA key fingerprint is SHA256:LqBzkeGa6K9BfWWKgcKlQoE0u+gjorX0lPLx5YftX1Y. RSA key fingerprint is MD5:ed:44:42:59:3e:dd:4c:12:43:4a:89:b1:5d:bd:9e:20. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.6' (RSA) to the list of known hosts. admin@10.0.0.6's password: importantfile 100% 0 0.0KB/s 00:00 [root@localhost ~]#
類似的,如果你想從一個遠端主機中取得檔案,你可以利用如下的 scp 命令。
[root@localhost ~]# scp root@10.10.16.137:/root/importantfile /home/admin/ The authenticity of host '10.10.16.137 (10.10.16.137)' can't be established. RSA key fingerprint is b0:b0:a3:c3:2e:94:13:0c:29:2e:ba:0b:d3:d6:12:8f. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.10.16.137' (RSA) to the list of known hosts. root@10.10.16.137's password: importantfile 100% 0 0.0KB/s 00:00 [root@localhost ~]#
你也可以像 cp 命令一樣,在 scp 命令中使用不同的選項,scp 的 man 幫助詳細地闡述了不同選項的用法和用處。
示例輸出
scp 可選引數如下所示:
-B 採取批量模式(避免詢問密碼或口令) -C 啟用壓縮。通過指明 -C 引數來開啟壓縮模式。 -c 加密方式 選擇在傳輸過程中用來加密的加密方式 這個選項會被直接傳遞到 ssh(1)。 -F ssh 配置 給 ssh 指定一個用來替代預設配置的配置檔案。這個選項會被直接傳遞到 ssh(1)。 -l 限速 限制命令使用的頻寬,預設單位是 Kbit/s。 -P 埠 指定需要的連線的遠端主機的埠。 注意,這個選項使用的是一個大寫的“P”,因為小寫的“-p”已經用來保留目標檔案的時間和模式相關資訊。(LCTT 譯註:ssh 命令中使用小寫的“-p”來指定目標埠。) -p 保留檔案原來的修改時間,訪問時間以及許可權模式。 -q 靜默模式:不顯示來自 ssh(1) 命令的進度資訊,警告和診斷資訊。 -r 遞迴拷貝整個目錄。 注意,scp 命令在樹形遍歷的時候同樣會跟隨符號連線,複製所連線的檔案。 -v 詳細模式。scp 和 ssh(1) 將會列印出處理過程中的除錯資訊。這可以幫助你除錯連線、認證和配置方面的問題。
詳細模式
利用 scp 命令的 -v 選項,你可以得到認證、除錯等的相關細節資訊。
當我們使用 -v 選項的時候,一個簡單的輸出如下所示:
[root@localhost ~]# scp -v abc.txt admin@10.0.0.6:/home/admin Executing: program /usr/bin/ssh host 10.0.0.6, user admin, command scp -v -t/home/admin OpenSSH_7.1p1, OpenSSL 1.0.2d-fips 9 Jul 2015 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 56: Applying options for * debug1: Connecting to 10.0.0.6 [10.0.0.6] port 22. debug1: Connection established. debug1: Server host key: ssh-rsa SHA256:LqBzkeGa6K9BfWWKgcKlQoE0u+gjorX0lPLx5YftX1Y debug1: Next authentication method: publickey debug1: Trying private key: /root/.ssh/id_rsa debug1: Trying private key: /root/.ssh/id_dsa debug1: Trying private key: /root/.ssh/id_ecdsa debug1: Trying private key: /root/.ssh/id_ed25519 debug1: Next authentication method: password admin@10.0.0.6's password: debug1: Authentication succeeded (password). Authenticated to 10.0.0.6 ([10.0.0.6]:22). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Sending environment. debug1: Sending command: scp -v -t /home/admin Sending file modes: C0644 174 abc.txt Sink: C0644 174 abc.txt abc.txt 100% 174 0.2KB/s 00:00 Transferred: sent 3024, received 2584 bytes, in 0.3 seconds Bytes per second: sent 9863.3, received 8428.1 debug1: Exit status 0 [root@localhost ~]#
當我們需要拷貝一個目錄或者資料夾的時候,我們可以使用 -r 選項,它會遞迴拷貝整個目錄。
靜默模式
如果你想要關閉進度資訊以及警告和診斷資訊,你可以通過使用scp命令中的-q選項.
上一次我們僅僅使用 -r 引數,它顯示了逐個檔案的資訊,但這一次當我們使用了 -q 引數,它就不顯示進度資訊。
利用 scp 的 -p 選項來保留目標檔案的更新時間,訪問時間和許可權模式。
通過 -P 選項來指定遠端主機的連線埠
scp 使用 ssh 命令來在兩個主機之間傳輸檔案,因為 ssh 預設使用的是22埠號,所以 scp 也使用相同的22埠號。
如果我們希望改變這個埠號,我們可以使用 -P(大寫的 P,因為小寫的 p 用來保持檔案的訪問時間等)選項來指定所需的埠號。
舉個例子,如果我們想要使用2222埠號,我們可以使用如下的命令
[root@localhost ~]# scp -P 2222 abcd1 root@10.10.16.137:/root/
限制命令使用的頻寬,指定的單位是 Kbit/s
如下所示,我們可以使用 -l 引數來指定 scp 命令所使用的頻寬,在此我們將速度限制為512kbit/s。
開啟壓縮
如下所示,我們可以通過開啟 scp 命令的壓縮模式來節省傳輸過程中的頻寬和時間。
選擇加密資料的加密方式
scp 預設使用 AES-128 的加密方式,如果我們想要改變這個加密方式,可以通過 -c(小寫的 c) 引數來指定其他的加密方式。
現在你可以利用 scp(Secure copy)命令在你所屬網路中的兩個節點之間安全地拷貝檔案了。
相關文章
- Linux下scp命令使用Linux
- 在 Windows 上使用 scp 命令Windows
- linux下scp命令詳解Linux
- linux 下 scp使用Linux
- linux之cp/scp命令+scp命令詳解Linux
- linux命令---scpLinux
- Linux scp命令Linux
- Linux cp命令和scp命令使用詳解Linux
- Linux SSH & SCP命令Linux
- SCP命令的使用
- Linux小技巧scp命令Linux
- Linux scp命令詳述Linux
- Linux命令 --- cp與scpLinux
- Linux scp命令詳解Linux
- 在linux下使用遠端複製命令scp時會出現去掉密碼提示的方法Linux密碼
- scp命令使用方法
- 使用scp命令在多個Linux系統間進行檔案複製Linux
- Linux的scp命令詳解Linux
- Linux scp命令的應用Linux
- 在 Linux 命令列下使用“原力”Linux命令列
- Linux下scp的用法Linux
- 每天一個 Linux 命令(60): scp命令Linux
- scp命令
- Linux遠端拷貝scp命令Linux
- 在 Linux 上安全傳輸檔案的 14 SCP 命令示例Linux
- 採用scp命令在Linux系統之間copy檔案Linux
- 常用scp命令
- ssh scp命令
- 使用scp在多個linux系統間進行copyLinux
- Linux 拷貝命令之高階拷貝scp命令詳解Linux
- scp命令基本用法
- 常見命令--SCP
- MacOS下shh,sftp,scp簡單使用MacFTP
- 在 Linux 命令列下使用 Mop 監視股票價格Linux命令列
- git在windows命令列下使用GitWindows命令列
- linux下nc命令的使用Linux
- 《Linux下sed命令的使用》Linux
- linux下svn命令的使用Linux