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

SFTP 傳輸文件全攻略:從基礎操作到自動化腳本與安全加固

編輯:關於 Linux

SFTP (SSH File Transfer Protocol) 基於 SSH 協議,提供加密傳輸、身份驗證、完整性校驗,是 Linux 間文件傳輸的標準選擇。本文涵蓋交互式操作、批次腳本、密鑰認證、Chroot 限制與效能調優。

SFTP 協議架構圖

連接與認證方式

方式命令示例適用場景
密碼認證sftp user@host臨時、低頻操作
指定埠口sftp -P 2222 user@host非標準 SSH 埠
密鑰認證sftp -i ~/.ssh/id_rsa user@host自動化、高安全
配置文件別名sftp myserver (配合 ~/.ssh/config)長期管理多台主機

交互式核心命令速查

# 導航
ls / lls          # 遠端/本地列表
cd / lcd          # 遠端/本地切換目錄
pwd / lpwd        # 遠端/本地當前路徑

# 傳輸
get remote.txt local.txt          # 下載單文件
get -r dir/                       # 遞歸下載目錄
put local.txt remote.txt          # 上傳單文件
put -r local_dir/                 # 遞歸上傳目錄
mget *.log                        # 批量下載
mput *.csv                        # 批量上傳

# 文件操作
mkdir / rmdir / rm / rename / chmod / chown / ln / symlink

# 退出
bye / exit / quit

非交互式批次腳本(自動化部署核心)

1. 批次文件模式

# commands.txt
cd /var/www/html
put -r ./dist/*
bye

# 執行
sftp -b commands.txt user@host

2. Here Document 模式(腳本內嵌)

sftp -i /root/.ssh/deploy_key user@host <

3. lftp 進階替代(支援多線程、斷點續傳、鏡像同步)

lftp -u user,pass sftp://host <

服務端安全加固:Chroot 限制用戶目錄

# /etc/ssh/sshd_config
Subsystem sftp internal-sftp

Match Group sftpusers
    ChrootDirectory /data/sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no
    PasswordAuthentication no
    AuthenticationMethods publickey

# 建立用戶與目錄結構
groupadd sftpusers
useradd -g sftpusers -s /sbin/nologin -d /data/sftp/user1 user1
mkdir -p /data/sftp/user1/upload
chown root:root /data/sftp/user1
chown user1:sftpusers /data/sftp/user1/upload
systemctl reload sshd

效能調優參數

參數建議值說明
ClientAliveInterval60防止長連接被防火牆斷開
ClientAliveCountMax3
IPQoSthroughput優先保證吞吐量
Compressionyes文本文件壓縮傳輸
Ciphersaes128-gcm@openssh.com,chacha20-poly1305@openssh.com現代高性能加密算法

常見問題排查

  • Permission denied (publickey): 檢查 ~/.ssh/authorized_keys 權限 (600)、父目錄權限 (700)、SELinux 上下文
  • Connection reset: MTU 問題、防火牆攔截、Chroot 目錄權限錯誤 (需 root:root 755)
  • 傳輸極慢: 關閉壓縮 -o Compression=no、調整加密算法、檢查磁碟 IO

總結

SFTP 以「單通道、強加密、原生 SSH 整合」成為 Linux 文件傳輸首選。掌握 sftp -b 批次模式與 lftp mirror 鏡像同步,配合 Chroot 隔離與密鑰認證,可構建安全、自動化、高效能的文件傳輸體系。

Copyright © Windows教程網 All Rights Reserved