Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Mac 與 Linux 文件傳輸實戰:SCP 命令雙向傳輸完全指南

編輯:關於 Linux

Mac (基於 BSD) 與 Linux 文件傳輸,SCP 基於 SSH 協議,加密安全、無需額外部署。本文實戰演示下載、上傳、目錄遞歸、權限處理全流程。

前置條件

  • 雙方開啟 SSH 服務:systemctl start sshd (Linux) / 系統偏好設置 → 共享 → 遠程登錄 (Mac)
  • 知曉目標 IP、用戶名、密鑰或密碼
  • 網絡互通 (ping 可達)

場景一:從 Linux 服務器下載文件到 Mac

1. 確保文件可讀 (權限調整)

# Linux 服務器上
sudo chown $USER /var/log/app.log  # 或使用 sudo scp

2. 執行下載

# Mac 終端執行
scp user@192.168.1.100:/var/log/app.log ~/Downloads/
# 提示輸入密碼,或使用密鑰免密

3. 批量下載 (通配符)

scp user@192.168.1.100:/var/log/*.log ~/Downloads/logs/

場景二:從 Mac 上傳文件/目錄到 Linux

1. 上傳單文件

scp ~/Documents/config.yaml user@192.168.1.100:/etc/app/

2. 上傳目錄 (關鍵:-r 遞歸)

scp -r ~/Projects/myapp user@192.168.1.100:/opt/apps/
# 無 -r 會報錯: "not a regular file"

3. 上傳並重命名

scp ~/local.conf user@192.168.1.100:/etc/app/prod.conf

進階技巧

SSH 密鑰免密登錄 (強烈推薦)

# Mac 生成密鑰對
ssh-keygen -t ed25519 -C "mac-to-linux"

# 複製公鑰到 Linux
ssh-copy-id user@192.168.1.100
# 或手動
cat ~/.ssh/id_ed25519.pub | ssh user@192.168.1.100 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# 驗證免密
ssh user@192.168.1.100

加速傳輸

# 壓縮傳輸 (-C)
scp -C large_file.dat user@host:/path/

# 指定加密算法 (AES-GCM 硬件加速)
scp -c aes256-gcm@openssh.com file user@host:/path/

# 限制帶寬 (KB/s)
scp -l 10000 large_file user@host:/path/

保留文件屬性

# -p 保留修改時間、訪問時間、權限
scp -p file user@host:/path/

# 結合使用
scp -r -p -C ~/project user@host:/opt/

替代方案對比

工具優點缺點適用場景
SCP普遍可用、加密、單文件簡單大量小文件慢、無斷點續傳臨時、少量文件
rsync增量同步、斷點續傳、保留屬性最好語法較複雜備份、同步、大量文件
SFTP交互式、支持斷點續傳需交互或批處理腳本文件管理、瀏覽
AirDrop/共享資料夾圖形化、無需命令僅局域網、Mac-Linux 需 Samba桌面用戶、非技術人員

rsync 實戰示例 (推薦生產同步)

# Mac 同步到 Linux (增量、壓縮、顯示進度、刪除目標多餘)
rsync -avz --progress --delete ~/Projects/ user@192.168.1.100:/opt/Projects/

# Linux 同步到 Mac
rsync -avz --progress user@192.168.1.100:/var/www/ ~/Sites/

故障排查

錯誤原因解決
Permission denied權限不足chown、sudo、調整目標目錄權限
Connection refusedSSH 服務未啟動/端口錯誤systemctl status sshd、檢查防火牆
Host key verification failedknown_hosts 衝突ssh-keygen -R hostname
scp: not a regular file目錄傳輸缺 -r添加 -r 參數

SCP 為跨平台文件傳輸基石,配合 SSH 密鑰與 rsync,構建高效安全的異構系統數據流動通道。

Copyright © Windows教程網 All Rights Reserved