新
| | |
scp
命令速查筆記
基本語法
scp [參數] [源路徑] [目標路徑]
常用操作示例
1. 上傳本地檔案到遠端伺服器
scp ./file.txt user@192.168.1.10:/home/user/
2. 從遠端伺服器下載檔案到本地
scp user@192.168.1.10:/home/user/file.txt ./file.txt
3. 上傳目錄到遠端伺服器
scp -r ./mydir user@192.168.1.10:/home/user/
4. 從遠端伺服器下載目錄到本地
scp -r user@192.168.1.10:/home/user/mydir ./mydir
5. 使用指定連接埠(如 2222)
scp -P 2222 ./file.txt user@192.168.1.10:/home/user/
6. 使用指定私鑰檔案
scp -i ~/.ssh/id_rsa ./file.txt user@192.168.1.10:/home/user/
常用參數說明
參數 | 說明 |
---|---|
-r | 遞迴複製整個目錄 |
-P | 指定遠端主機連接埠(注意是大寫 P) |
-i | 指定 SSH 私鑰檔案 |
-C | 啟用壓縮,提高傳輸速度 |
-p | 保留檔案的修改時間、權限等屬性 |
-q | 靜默模式,不輸出進度資訊 |
路徑說明
類型 | 示例 |
---|---|
本地路徑 | ./file.txt 或 /home/user/file.txt |
遠端路徑 | user@host:/path/to/file.txt |
常見錯誤排查
錯誤 | 可能原因 |
---|---|
Permission denied | SSH 金鑰無效,或遠端目錄無寫入權限 |
No such file or directory | 源或目標路徑寫錯 |
Connection refused | 目標連接埠不通或 SSH 服務未開啟 |
Host key verification failed | 第一次連接遠端主機,未接受主機指紋。可先用 ssh 登錄一次 |
實用補充
複製檔案到另一台遠端伺服器
scp user1@host1:/path/file.txt user2@host2:/path/
當前機器必須能存取 host1 和 host2
批次上傳檔案(腳本示例)
for f in *.log; do
scp "$f" user@host:/var/logs/
done
常用命令模板
scp ./local.txt user@host:/remote/path/
scp user@host:/remote/file.txt ./local/
scp -r ./dir user@host:/remote/
scp -i ~/.ssh/key.pem -P 2222 ./file user@host:/dest/