sftp — SSH 安全檔案傳輸協定
透過 SSH 加密連線進行互動式或批次的安全檔案傳輸。
語法
sftp [選項] [使用者@]主機[:路徑]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-P port |
指定 SSH port | sftp -P 2222 user@host |
-i 金鑰 |
指定 SSH 私鑰 | sftp -i ~/.ssh/key user@host |
-b 檔案 |
從檔案讀取批次指令(非互動式) | sftp -b commands.sftp user@host |
-r |
遞迴傳輸目錄(get/put -r) | sftp user@host |
-C |
啟用壓縮 | sftp -C user@host |
使用範例
範例 1:互動式 sftp 連線
連線後可使用以下指令: ls / lls — 遠端/本機目錄列表 cd / lcd — 遠端/本機切換目錄 get 遠端檔案 — 下載 put 本機檔案 — 上傳 mkdir — 建立遠端目錄 pwd / lpwd — 遠端/本機路徑 bye / exit — 離開
$ sftp user@server.example.com
Connected to server.example.com.
sftp> ls
Documents Downloads public_html
sftp> get important.log
Fetching /home/user/important.log to important.log
範例 2:直接下載特定檔案
在連線時就指定路徑,可直接進入該目錄。
$ sftp user@server:/var/log/
sftp> ls
access.log error.log syslog
範例 3:批次非互動式傳輸
將 sftp 指令寫入檔案,用 -b 非互動式執行,適合腳本自動化。
$ cat > batch.sftp << 'EOF'
cd /var/www/html
put -r ./dist/*
bye
EOF
sftp -b batch.sftp user@server