一、準備工作:安裝OpenSSH服務器
SFTP是SSH協議的擴展,默認集成在OpenSSH服務器中。大多數Linux發行版(如Debian/Ubuntu、CentOS/RHEL)無需額外安裝即可使用。若未安裝,可通過以下命令快速部署:
sudo apt update && sudo apt install openssh-server
sudo yum update && sudo yum install openssh-server
systemctl status ssh
(或sshd
,取決于系統)確認服務處于運行狀態。二、配置SFTP服務器:限制權限與啟用子系統
編輯SSH配置文件:打開/etc/ssh/sshd_config
,找到并修改以下關鍵配置(若不存在則新增):
Subsystem sftp /usr/lib/openssh/sftp-server
(部分系統路徑可能為/usr/libexec/openssh/sftp-server
,需根據實際情況調整);Match Group
指令針對特定用戶組(如sftpusers
)設置嚴格權限,防止越權操作:Match Group sftpusers
ChrootDirectory %h # 將用戶限制在其家目錄(chroot jail)
ForceCommand internal-sftp # 強制使用SFTP,禁止Shell登錄
AllowTcpForwarding no # 禁用端口轉發
X11Forwarding no # 禁用X11轉發
上述配置確保用戶只能通過SFTP訪問自己的家目錄,無法執行系統命令。
創建專用SFTP用戶組與用戶:
sudo groupadd sftpusers
;sudo useradd -m -G sftpusers your_username
(-m
創建家目錄,-G
指定附加組);sudo passwd -l your_username
,強制使用SSH密鑰認證。設置家目錄權限:
root
(chroot要求):sudo chown root:root /home/your_username
;755
(允許用戶讀取/執行,但無法寫入):sudo chmod 755 /home/your_username
;.ssh
子目錄(用于存放授權密鑰):mkdir /home/your_username/.ssh
,并設置權限為700
:chmod 700 /home/your_username/.ssh
。配置SSH密鑰認證(增強安全性):
ssh-keygen -t rsa -b 4096
(按提示保存密鑰文件,如~/.ssh/id_rsa
);ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@remote_host
,自動將公鑰添加到~/.ssh/authorized_keys
;authorized_keys
權限為600
:chmod 600 /home/your_username/.ssh/authorized_keys
,防止未經授權的訪問。三、重啟SSH服務:應用配置更改
修改配置文件后,需重啟SSH服務使更改生效:
sudo systemctl restart ssh
;sudo systemctl restart sshd
。四、使用SFTP客戶端連接遠程服務器
命令行客戶端(基礎操作):
在本地終端輸入sftp your_username@remote_host
(替換為實際用戶名和服務器IP),輸入密碼或使用密鑰認證(若配置了密鑰)。連接成功后,可使用以下常用命令:
ls
:列出遠程目錄內容;cd [目錄名]
:切換遠程目錄;get [遠程文件] [本地路徑]
:下載文件(如get file.txt ~/Downloads
);put [本地文件] [遠程路徑]
:上傳文件(如put ~/Documents/report.pdf /home/your_username/docs
);mkdir [目錄名]
:創建遠程目錄;rm [文件名]
:刪除遠程文件;exit
或bye
:退出SFTP會話。圖形化客戶端(便捷操作):
推薦使用FileZilla(跨平臺)、WinSCP(Windows)或Cyberduck(Mac),輸入服務器信息(主機名/IP、端口22、用戶名、密碼/密鑰)即可連接。圖形化界面支持拖拽文件傳輸、右鍵菜單操作(如重命名、刪除),更適合新手或不熟悉命令行的用戶。
五、安全注意事項:強化遠程管理安全性
/etc/ssh/sshd_config
中設置PasswordAuthentication no
),僅允許密鑰登錄,降低暴力破解風險。iptables
、ufw
)或SSH配置(AllowUsers your_username@192.168.1.*
)限制僅特定IP地址可連接SFTP服務器。tail -f /var/log/auth.log
(Debian/Ubuntu)或tail -f /var/log/secure
(CentOS/RHEL)實時查看SFTP登錄記錄,及時發現異常行為。