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

Linux 跨主機安全複製:scp 實戰指南與 SSH 金鑰免密進階技巧

編輯:Linux 教學

scp(Secure Copy)基於 SSH 協定,提供加密、認證、完整性保護的跨主機檔案傳輸。本文涵蓋雙向複製語法、遞歸目錄、免密金鑰配置、大檔案優化與常見錯誤排查。

一、 核心語法與雙向複製

方向語法範例
本地 → 遠端scp 本地路徑 使用者@遠端IP:遠端路徑scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp
遠端 → 本地scp 使用者@遠端IP:遠端路徑 本地路徑scp root@192.168.60.133:/home/ixdba/etc.tar.gz /tmp
遠端 → 遠端(經本地中轉)scp -3 user1@host1:/path user2@host2:/path需本地能連兩端

二、 關鍵參數

  • -r:遞歸複製目錄(含子目錄)
  • -p:保留修改時間、存取時間、權限
  • -P port:指定 SSH 埠(大寫 P,區別於 ssh -p)
  • -C:啟用壓縮(低頻寬網路有效)
  • -l limit:限制頻寬(Kbit/s)
  • -o ssh_option:傳遞 SSH 選項(如 -o StrictHostKeyChecking=no)

三、 免密金鑰配置(三步驟)

  1. 本地生成金鑰對:ssh-keygen -t rsa -b 4096(一路 Enter,不設密語)
  2. 推送公鑰至遠端:ssh-copy-id user@remote_ip(輸入一次密碼)
  3. 驗證免密登入:ssh user@remote_ip → 直接進 Shell

之後 scp、rsync、ssh 均無需輸入密碼,適合自動化腳本。

四、 實戰範例

1. 單檔傳輸

scp /home/ixdba/etc.tar.gz root@192.168.60.168:/tmp

2. 目錄遞歸傳輸(保留屬性)

scp -rp /etc root@192.168.60.135:/opt

3. 非標準 SSH 埠

scp -P 2222 file.txt user@host:/path

4. 大檔案傳輸優化

scp -Cp -c aes128-ctr bigfile.iso user@host:/path
# -C 壓縮,-c aes128-ctr 較快加密演算法,-p 保留屬性

五、 進階替代方案:rsync 更強大

rsync -avzP -e ssh /source/ user@host:/dest/
# -a 歸檔模式,-v 詳細,-z 壓縮,-P 進度+斷點續傳

rsync 支援增量同步、斷點續傳、刪除同步、頻寬限制、過濾規則,是生產環境同步備份的首選。

六、 常見錯誤排查

錯誤訊息原因解決
Permission denied金鑰未授權/權限錯誤檢查 ~/.ssh/authorized_keys 權限 600、目錄 700
Connection refusedSSH 服務未啟動/埠錯誤/防火牆systemctl status sshd、firewall-cmd --add-service=ssh
Host key verification failed遠端主機金鑰變更/中間人攻擊ssh-keygen -R hostname 移除舊紀錄
stalled / 速度極慢MTU 不匹配/加密效能/壓縮負擔調整 MTU、改用 -c aes128-ctr、關閉 -C

七、 結語

scp 是「隨叫隨到的加密搬運工」,rsync 是「智慧型同步大師」。日常單檔/小目錄用 scp;定時備份、鏡像同步、大目錄增量請直上 rsync。金鑰免密是自動化運維的基石,請務必建立標準化金鑰分發流程。

Copyright © Windows教程網 All Rights Reserved