SFTP(SSH File Transfer Protocol)加密傳輸、支援公開金鑰認證,是 FTP 的安全替代方案。本文涵蓋連線參數、上傳下載、批次操作、斷點續傳技巧。
# 指定埠口 60001
sftp -oPort=60001 user@192.168.0.254
# 使用 SSH 金鑰
sftp -i ~/.ssh/id_rsa user@host
# 直接帶入指令(非互動)
sftp -b batchfile.txt user@host
| 指令 | 說明 |
|---|---|
get remote.txt local.txt | 下載單一檔案 |
put local.txt remote.txt | 上傳單一檔案 |
mget *.log | 下載多檔(支援萬用字元) |
mput *.csv | 上傳多檔 |
reget file | 斷點續傳下載 |
reput file | 斷點續傳上傳 |
lcd /local/path | 切換本地目錄 |
cd /remote/path | 切換遠端目錄 |
lls / lls -l | 列出本地檔案 |
ls / ls -l | 列出遠端檔案 |
mkdir / rmdir | 建立/刪除遠端目錄 |
chmod / chown | 改權限/擁有者 |
exit / bye / quit | 離開 |
lcd /home/user/backup
cd /var/www/backup
mget *.tar.gz
bye
執行:sftp -b batchfile.txt user@host
~/.ssh/config 設定 Host myserver\n HostName 192.168.0.254\n Port 60001\n User root\n IdentityFile ~/.ssh/id_rsa,之後直接 sftp myserver。sshfs user@host:/remote/path /mnt/remote(需安裝 sshfs),操作如同本地目錄。/etc/ssh/sshd_config 加入 ForceCommand internal-sftp + ChrootDirectory。