scp 基於 SSH 協定提供加密檔案傳輸,語法簡潔支援單檔、目錄遞迴、保留屬性。本文整理上傳/下載檔案與目錄的標準指令範例、關鍵參數對照表、SSH 金鑰免密碼配置流程,並補充 rsync/sftp 替代方案適用場景。

scp [選項] [用戶@]來源主機:來源路徑 [用戶@]目的主機:目的路徑
| 操作 | 指令範例 |
|---|---|
| 下載單一檔案 | scp user@192.168.1.100:/home/user/file.txt /tmp/ |
| 上傳單一檔案 | scp /var/www/app.jar user@192.168.1.100:/opt/deploy/ |
| 下載整個目錄 | scp -r user@192.168.1.100:/var/www/html/ /backup/ |
| 上傳整個目錄 | scp -r /local/project/ user@192.168.1.100:/remote/path/ |
| 參數 | 說明 |
|---|---|
-r | 遞迴複製目錄 |
-p | 保留修改時間、存取時間、權限 |
-P port | 指定 SSH 埠 (大寫 P,區別 ssh -p) |
-C | 啟用壓縮傳輸 (低頻寬有效) |
-l limit | 限制頻寬 (Kbit/s) |
-o SSH_OPTION | 傳遞 ssh 選項 (如 -o StrictHostKeyChecking=no) |
-i identity_file | 指定私鑰檔案 |
-q | 靜默模式 (不顯示進度) |
ssh-keygen -t ed25519 (或 -t rsa -b 4096)ssh-copy-id user@remote-hostssh user@remote-host 應直接登入# 使用 expect 自動化輸入密碼 (不建議生產環境)
# 更佳方案:建立專用傳輸帳號 + 金鑰 + 限制命令 (rssh/authorized_keys command=)
tar czf - /src | ssh user@host "tar xzf - -C /dst" 避免 inode 操作開銷Linux LVM 邏輯卷管理完整實戰:建立 PV、VG、LV、擴容、縮減、快照備份四大核心操作
Linux 製作 Live USB 五大工具:UNetbootin、Ventoy、dd 指令、發行版內建、腳本法
Linux 兩機互傳檔案完全指南:scp/rsync/sftp/sshfs 四大工具實戰比較與最佳實踐
Linux 安裝 fcitx 輸入法框架:套件管理器安裝、重啟、加入輸入法列表
OpenSSL 自定義加密算法集成開發指南:以 EVP_ssf33 為例
Linux 定時重啟 Tomcat 實戰:crontab + 啟動/關閉腳本 自動化運維
Ubuntu USB 開機報錯 "BOOT ERROR" 解決方案:BIOS USB 模式 (ZIP/HDD/Auto) 與啟動順序調整實戰